All Versions
10
Latest Version
Avg Release Cycle
149 days
Latest Release
928 days ago

Changelog History

  • v1.3.4 Changes

    March 22, 2020

    πŸš€ This bug fix releases resolves further HTML entity encoding issues, the use of custom expiration options in the email function, pasting into the password dialog on pastes with attachments and also updates the identicon library to 2.0.0, which increases the minimum required PHP version to 5.6.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.3.x instances to address these issues.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”„ Changes since version 1.3.3

    • πŸ”„ CHANGED: Minimum required PHP version is 5.6, due to a change in the identicon library and to use php's native hash_equals()
    • ⬆️ CHANGED: Upgrading libraries to: identicon 2.0.0
    • πŸ›  FIXED: Support custom expiration options in email function (#586)
    • πŸ›  FIXED: Regression with encoding of HTML entities (#588)
    • πŸ›  FIXED: Unable to paste password on paste with attachment (#565 & #595)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.4 release announcements.

  • v1.3.3 Changes

    February 16, 2020

    This release fixes HTML entity double encoding issues introduced in version 1.3.2 of PrivateBin.

    πŸš€ In the efforts to prevent the unencoded strings to cause XSS issues down the line in releases 1.3.2 and 1.2.2, we had some strings getting their HTML entities encoded twice. This caused some display glitches as well as preventing the URLs in paste texts to get converted to links.

    πŸš€ This bug fix releases resolves these encoding issues, expands the XSS protection to the server side templating, updates some missing translation strings for the mailing feature (in 1.3.3 only) and also updates the DOMpurify library to 2.0.8.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.3, 1.3.1, 1.3.2, 1.2, 1.2.1 and 1.2.2 instances to address these issues.

    πŸš€ We do offer a backport of these fixes for the 1.2.x versions of PrivateBin. You may choose to use version 1.2.3 over 1.3.3, if you do need to support legacy browsers with incomplete or missing Webcrypto API, like IE, non-Chromium based Edge or some ESR releases.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”„ Changes since version 1.3.2

    • ⬆️ CHANGED: Upgrading libraries to: DOMpurify 2.0.8
    • ⚑️ CHANGED: Several translations got updated with missing messages
    • πŸ”„ CHANGED: Introduce HTML entity encoding on server side (#581)
    • πŸ›  FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.3 & 1.2.3 release announcements.

  • v1.3.2 Changes

    January 11, 2020

    This release fixes a persistent XSS vulnerability in filenames of attached files in PrivateBin.

    πŸš€ On 25th of December 2019, an issue was discovered and fixed, which allowed the user provided attachment file name to inject HTML under certain conditions, leading to a persistent Cross-site scripting (XSS) vulnerability. This release includes an improved solution, which addresses the issue on a broader scope, avoiding this to reoccur in other areas of the code in the future.

    ⚑️ Further details on this is an issue and its implications can be found in our report on the vulnerability. It also describes methods to check if your browser is currently affected by the issue. If it is, please consider updating your browser.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.3, 1.3.1, 1.2 and 1.2.1 instances to address this issue, even if the instance doesn't have fileuploads enabled and uses the recommended CSP header to mitigate XSS attacks.

    πŸš€ Due to the seriousness of the issue, we do offer a backport of the fix for the 1.2.1 version of PrivateBin, that also includes updated JavaScript libraries. You may choose to use that version over 1.3.2, if you do need to support legacy browsers with incomplete or missing Webcrypto API, like IE, non-Chromium based Edge or some ESR releases.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”„ Changes since version 1.3.1

    • βž• ADDED: Translation for Ukrainian (#533)
    • βž• ADDED: Option to send a mail with the link, when creating a paste (#398)
    • βž• ADDED: Add support for CONFIG_PATH environment variable (#552)
    • ⬆️ CHANGED: Upgrading libraries to: base-x 3.0.7, DOMpurify 2.0.7 & Showdown 1.9.1
    • πŸ›  FIXED: HTML injection via unescaped attachment filename (#554)
    • πŸ›  FIXED: Password disabling option (#527)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.2 & 1.2.2 release announcements.

  • v1.3.1 Changes

    September 22, 2019

    This release improves the display of appropriate errors for unsupported browsers/configurations.

    πŸš€ Since the release of version 1.3 only two months ago we received reports on a surprising number of corner cases with certain browser versions and protocols in which the new release didn't work, while 1.2.1 still did. The release addresses most of these or at least aims to provide a meaningful error message with hints what the user may do to avoid these (switching to HTTPS, using a different browser or being limited to partial functionality).

    🌐 We also have been provided with a Bulgarian translation and several improvements to the bootstrap template, cloning pastes and the drap & drop file upload. The URL shortener now also supports JSON APIs and the default size limit was increased to 10 MiB.

    πŸš€ Before the 1.3 release we had tested mainly in Firefox and Chrome, but none of the core developers had easy access to Windows based browsers (Edge, IE) or Mac (Safari). We also missed that Chrome disables the webcrypto API used in 1.3 to replace the SJCL cryptographic library, when accessing the site via HTTP. It didn't do this in our local testing environments, as localhost is considered safe by it, even when not accessed via HTTPS. Other quirks discovered were issues when accessing PrivateBin via Tor and i2p networks. The Torbrowser disables webassembly due to security concerns, which prevented these clients to create or read pastes.

    βœ… To facilitate testing of such quirks and having access to more browsers versions, we applied for a sponsored browserstack account. This helped us improving the browser feature detection. In particular the following cases got covered:

    • πŸ”’ When a modern browser has webassembly disabled (i.e. for security), it displays a warning, but still can create and read uncompressed pastes, just not open compressed ones.
    • πŸ’» Browsers with a lack for webcrypto API on an HTTP site get suggested to switch to HTTPS (requires support by the server).
    • πŸ’» Browsers with a lack for webcrypto API, async or ES6 support get an error requesting to switch to a modern browser.
    • πŸ’» Internet Explorer remains unsupported, but now get an appropriate error requesting to switch to a modern browser.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.3 instances to improve the support for Chrome and older browsers get more appropriate error messages.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”§ The default size limit got increased from 2 to 10 MiB. If you didn't configure a custom size, you may have to adjust your PHP and webserver settings to be able to use the new limit to the full extent.

    ⚑️ If you use the MySQL database backend and don't allow the PrivateBin use to ALTER TABLES, you have to manually change one columns type and UPDATE the database version (replace "prefix_" with your own table prefix, if used):

    ALTER TABLE prefix\_paste MODIFY COLUMN data MEDIUMBLOB;UPDATE prefix\_config SET value = "1.3.1" WHERE id = "VERSION";
    

    PostgreSQL and SQLite don't require this change.

    πŸ”„ Changes since version 1.3

    • βž• ADDED: Translation for Bulgarian (#455)
    • πŸ”„ CHANGED: Improved mobile UI - obscured send button and hard to click shortener button (#477)
    • πŸ”„ CHANGED: Enhanced URL shortener integration (#479)
    • πŸ”„ CHANGED: Improved file upload drag & drop UI (#317)
    • πŸ”„ CHANGED: Increased default size limit from 2 to 10 MiB, switch data from BLOB to MEDIUMBLOB in MySQL (#458)
    • ⬆️ CHANGED: Upgrading libraries to: DOMpurify 2.0.1
    • πŸ›  FIXED: Enabling browsers without WASM to create pastes and read uncompressed ones (#454)
    • πŸ›  FIXED: Cloning related issues (#489, #491, #493, #494)
    • πŸ›  FIXED: Enable file operation only when editing (#497)
    • πŸ›  FIXED: Clicking 'New' on a previously submitted paste does not blank address bar (#354)
    • πŸ›  FIXED: Clear address bar when create new paste from existing paste (#479)
    • πŸ›  FIXED: Discussion section not hiding when new/clone paste is clicked on (#484)
    • πŸ›  FIXED: Showdown.js error when posting svg qrcode (#485)
    • πŸ›  FIXED: Failed to handle the case where user cancelled attachment selection properly (#487)
    • πŸ›  FIXED: Displaying the appropriate errors in older browsers (#508)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.1 release announcements.

  • v1.3 Changes

    July 09, 2019

    This release switches the used encryption and compression libraries and addresses several problems with mangled URLs and pastes.

    πŸš€ We fixed several issues in this release. We now tell Chrome not to send the whole page, including the decrypted text, to it's translation services. Thanks to the use of blob instead of data URI's, Chrome can now deal with attachments larger then 2 MiB. The raw text mode escapes HTML correctly again (a regression introduced in 1.2). PrivateBin can now handle URLs mangled by Facebook.

    🌐 Translations for Czech has been added since the last release.

    We threat modeled the application in preparation for the changes in the API, JSON format and encryption.

    πŸš€ The main change of this release was the switch from the SJCL and rawdeflate JavaScript libraries to the browser integrated WebCrypto API and zlib C library (via WebAssembly) as well as various modernizations of our use of JavaScript. We still fully support reading older pastes and comments, but newly generated pastes use a different, more efficient and flexible format. Some of these changes lead to us dropping the support for Internet Explorer and we suggest to use Edge instead, if no other modern browser is available (see Appendix A in the release announcements).

    The change to WebCrypto API means that the cryptographic functions are now handled by the browser integrated libraries instead of code that has to be transferred from the webserver to the client. While this can't prevent a malicious party to inject logic to extract the key or decrypted contents, it does increase the trust users can have in the cryptographic functionality of PrivateBin as well as speed up both initial page load as well as the en/decryption itself.

    Over the years we encountered several cases where the deflate implementation used in the rawdeflate JavaScript library produced results that couldn't be decompressed by itself or other deflate implementation. While the latter mainly affected third-party CLI clients, the first lead to pastes that couldn't be read even by PrivateBin itself. We had initially planned to use the pako JavaScript library, but during implementation of the new format found that the zlib C library used in most other languages for deflate support can be used in JavaScript as well, via compilation into WebAssembly. This is a very stable library with no currently known bugs and even performs better then pako.

    Server operators now have an additional configuration option that lets them disable compression. While the compression before encryption reduces the size of most text, source code, markdown pastes and text comments drastically, when having file upload enabled and mostly using an instance to share already compressed files (office documents, PNG or JPG images, etc.) this slows down the creation of the pastes unnecessarily and without gain. Furthermore some security minded administrators may wish to disable compression to avoid potential security risks that would make brute forcing keys easier for shorter, compressed pastes.

    πŸš€ As usual we have also upgraded all used libraries to their latest releases. The identicon library now requires PHP 5.5, so this is the new minimum required PHP version.

    Finally the newly used JSON format and API was taken as an opportunity to implement some, otherwise breaking, changes like the use of base58 for the hash key encoding instead of base64, which addresses the Outlook mail client stripping trailing equal signs from URLs. The number of iterations in the PBKDF2 key derivation got increased from 10k to 100k to make it more costly to brute force the password of a paste. The server now uses Fowler–Noll–Vo checksums instead of md5 to generate unique paste IDs.

    πŸš€ Benefits of switching to the new release

    πŸ”’ Due to some rather annoying bugs in the raw paste view and with URLs mangled by Facebook and Outlook, we do recommend an upgrade on instances that are more widely used. While most users never encountered cases where the pastes got mangled in the deflate compression, users that frequently upload office documents and certain source code and compiler outputs would trigger this rather reliably. There are also several improvements that increase the security of the encryption.

    ⚑️ Update procedure

    πŸ”§ Two new configuration options, compression and httpwarning got introduced.

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root. Note that the latest docker containers use different user IDs then the older ones, so you will have to change the ownership of the attached data volume.

    If you do have to use the new release on a PHP 5.4 environment, you can attempt to change the icon option to vizhash or none and decrease the MIN_PHP_VERSION in the lib/Controller.php file.

    πŸ”„ Changes since version 1.2.1

    • βž• ADDED: Translation for Czech (#424)
    • βž• ADDED: Threat modeled the application (#177)
    • βž• ADDED: Made compression configurable (#38)
    • πŸ”„ CHANGED: Minimum required PHP version is 5.5, due to a change in the identicon library
    • πŸ”„ CHANGED: Minimum required browser versions are Firefox 54, Chrome 57, Opera 44, Safari 11, Edge 16, due to use of WebCrypto API, async/await, ES6 & WebAssembly features - all Internet Explorer versions are incompatible
    • πŸ”„ CHANGED: JSON and encryption formats were changed to replace SJCL library by browser integrated WebCrypto API (#28, #74)
    • πŸ”„ CHANGED: Replaced rawdeflate.js with zlib.wasm to resolve decompression failures and gain compatibility with standard deflate implementations (#193, #260, #328, #434, #440)
    • πŸ”„ CHANGED: Increase PBKDF2 iterations to 100k (#350)
    • πŸ”„ CHANGED: Replaced last use of MD5 with Fowler–Noll–Vo checksum which produces the exact length we need for the paste ID (#49)
    • πŸ”„ CHANGED: Simplified some PHP code & renamed PrivateBin class into Controller, to make MVC pattern use more obvious (#342)
    • ⬆️ CHANGED: Upgrading libraries to: identicon 1.2.0, random_compat 2.0.18, jQuery 3.4.1, Showdown 1.9.0, DOMpurify 1.0.11 & kjua 0.6.0
    • πŸ›  FIXED: Prevent Chrome from sending content of paste to Google for translation (#378)
    • πŸ›  FIXED: To support attachments larger then 2 MiB in newer Chrome versions, we switched to blob instead of data URIs (#432)
    • πŸ›  FIXED: Since Outlook strips trailing equal signs in links, the key in URL hash is now base58 encoded, instead of base64 (#377)
    • πŸ›  FIXED: Facebooks started injecting parameters into shared URLs for tracking that lead to inaccessible pastes (#396)
    • πŸ›  FIXED: Properly escaped HTML in raw text mode (#358)
    • πŸ›  FIXED: Made download links better readable in the dark bootstrap theme (#364)
    • πŸ›  FIXED: Allow Letsencrypt bot to access on apache servers (#413)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3 release announcements.

  • v1.2.3 Changes

    February 16, 2020

    This release fixes HTML entity double encoding issues introduced in version 1.2.2 of PrivateBin.

    πŸš€ In the efforts to prevent the unencoded strings to cause XSS issues down the line in releases 1.3.2 and 1.2.2, we had some strings getting their HTML entities encoded twice. This caused some display glitches as well as preventing the URLs in paste texts to get converted to links.

    πŸš€ This bug fix releases resolves these encoding issues, expands the XSS protection to the server side templating and updates the DOMpurify library to 2.0.8.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.2, 1.2.1 and 1.2.2 instances to address these issues.

    πŸš€ We do offer a backport of these fixes for the 1.2.x versions of PrivateBin. You may choose to use version 1.2.3 over 1.3.3, if you do need to support legacy browsers with incomplete or missing Webcrypto API, like IE, non-Chromium based Edge or some ESR releases.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”„ Changes since version 1.2.2

    • ⬆️ CHANGED: Upgrading libraries to: DOMpurify 2.0.8
    • πŸ”„ CHANGED: Introduce HTML entity encoding on server side (#581)
    • πŸ›  FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.3 & 1.2.3 release announcements.

  • v1.2.2 Changes

    January 11, 2020

    This release fixes a persistent XSS vulnerability in filenames of attached files in PrivateBin.

    πŸš€ On 25th of December 2019, an issue was discovered and fixed, which allowed the user provided attachment file name to inject HTML under certain conditions, leading to a persistent Cross-site scripting (XSS) vulnerability. This release includes an improved solution, which addresses the issue on a broader scope, avoiding this to reoccur in other areas of the code in the future.

    ⚑️ Further details on this is an issue and its implications can be found in our report on the vulnerability. It also describes methods to check if your browser is currently affected by the issue. If it is, please consider updating your browser.

    πŸš€ Benefits of switching to the new release

    ⬆️ We recommend to upgrade 1.3, 1.3.1, 1.2 and 1.2.1 instances to address this issue, even if the instance doesn't have fileuploads enabled and uses the recommended CSP header to mitigate XSS attacks.

    πŸš€ Due to the seriousness of the issue, we do offer a backport of the fix for the 1.2.1 version of PrivateBin, that also includes updated JavaScript libraries. You may choose to use that version over 1.3.2, if you do need to support legacy browsers with incomplete or missing Webcrypto API, like IE, non-Chromium based Edge or some ESR releases.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸ”„ Changes since version 1.2.1

    • ⬆️ CHANGED: Upgrading libraries to: bootstrap 3.4.1, DOMpurify 2.0.7, jQuery 3.4.1, kjua 0.6.0, Showdown 1.9.1 & SJCL 1.0.8
    • πŸ›  FIXED: HTML injection via unescaped attachment filename (#554)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.3.2 & 1.2.2 release announcements.

  • v1.2.1 Changes

    August 11, 2018

    This release fixes a low entropy key vulnerability in PrivateBin affecting legacy browsers

    On 31st of July 2018, @cryptolok reported a cryptographic vulnerability in PrivateBin due to the incorrect use of SJCL when used on very old browsers. When creating a paste using any ZeroBin version or PrivateBin up to and including 1.1.1 on a browser without web crypto API support (Firefox<21, Chrome<15, Safari<5, IE<11) the key may have been generated without sufficient entropy. PrivateBin 1.2 was not affected, because the support for those browser versions got removed in the JS refactoring.

    πŸš€ This release re-adds support for those legacy browsers and ensures they generate the key with sufficient entropy. In the next release of PrivateBin we will permanently drop legacy browser support and switch to the web crypto API exclusively. This release ensures that there is at least one release available that supports both legacy browsers and has the entropy issue fixed.

    ⚑️ Further details on this is an issue and its implications can be found in our report on the vulnerability. It also describes methods to check if your browser is currently affected by the issue. If it is, please consider updating your browser.

    πŸš€ Benefits of switching to the new release

    πŸš€ If you are still using PrivateBin version 1.1.1 or ZeroBin, upgrading to this release will ensure that you retain legacy browser support and fix the low entropy key vulnerability in your current version. If you already upgraded to PrivateBin 1.2 and don't need to support these very old browser versions (released before October 2013) then you could consider skipping this release.

    ⚑️ Update procedure

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root.

    πŸš€ Note that this is the first release that is signed with the new signing key (fingerprint: 28CA 7C96 4938 EA5C 1481 D42A E11B 7950 E9E1 83DB). This key is intended to be used for signing releases from now on.

    πŸ”„ Changes since version 1.2

    • βž• ADDED: Add support for mega.nz links in pastes and comments (#331)
    • πŸ”„ CHANGED: Added some missing Russian translations (#348)
    • πŸ”¨ CHANGED: Minor PHP refactoring: Rename PrivateBin class to Controller, improved logic of some persistence classes (#342)
    • ⬆️ CHANGED: Upgrading DOMpurify library to 1.0.7
    • πŸ›  FIXED: Ensure legacy browsers without webcrypto support can't create paste keys with insufficient entropy (#346)
    • πŸ›  FIXED: Re-add support for old browsers (Firefox<21, Chrome<31, Safari<7, IE<11), broken in 1.2, will be removed again in 1.3
  • v1.2 Changes

    July 22, 2018

    This release adds QR code generation, inline display of video, audio, PDF and new translations to PrivateBin and a large refactoring of the JavaScript code.

    A new button lets you generate a QR code of your newly created pastes URL. This allows for easy transfer of a pasted data from one mobile device to another.

    When the optional file upload is enabled, uploaded videos, audio files and PDFs are displayed inline, like we did with images, as long as the visitors browser supports it. By default the file and paste upload is limited to a 2 MiB size.

    🌐 Translations for Spanish, Occitan, Norwegian, Portuguese, Dutch and Hungarian have also been added since the last release.

    πŸš€ The main change of this release, and the reason it took us so long since doing the last one, was the large refactoring and cleanup of the JavaScript logic of PrivateBin. The refactoring itself was done in early 2017. In parallel we introced mocha and JSverify running on nodeJS as a property based unit testing framework for the logic (Γ  la QuickCheck). Many months were spent to cover more and more pieces of the logic.

    βœ… In the end we covered all of the modular parts of the logic (879 of 1273 lines of code for a 69% code coverage), including the encryption wrapper functions for backward compatibility with older paste formats. The UI related parts of the code proved difficult to test, partly because in nodeJS the browsers document object model (DOM) is emulated using the JSdom library, the lack of an actual view port being present (so no scrolling, for example) and also due the event driven nature which contradicts the modular approach of unit testing. For many UI interfaces, large parts of the DOM has to be present, since emitting a single click event may trigger changes in many different parts of the UI. This is a shortcoming of the current structure of the UI logic, which we may need to improve further.

    βœ… Still, the unit testing found many regressions and some issues that have been in the code for a long time without having been reported. It lays the necessary ground work for the future changes, especially the major changes planned for the encryption format.

    πŸš€ Benefits of switching to the new release

    πŸš€ Apart from the new QR code feature many new translations were added. All used libraries were upgraded, too. While no security issues were reported for any of these, they address some bugs that didn't affect us directly or improve compatibility with the latests browsers and PHP releases.

    ⚑️ Update procedure

    πŸ”§ A new configuration option name was introduced for those admins that like to replace the "PrivateBin" moniker in the template with their own site name.

    πŸš€ As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

    🐳 We now also offer a Docker container that includes the recommended secure setup with the non-essential files and data outside of the web servers document root. We also started providing additional tools in Docker containers.

    πŸ”„ Changes since version 1.1.1

    • βž• ADDED: Translations for Spanish, Occitan, Norwegian, Portuguese, Dutch and Hungarian
    • βž• ADDED: Option in configuration to change the default "PrivateBin" title of the site
    • βž• ADDED: Added display of video, audio & PDF, drag & drop, preview of attachments (#182)
    • βž• ADDED: QR code generation (#169)
    • βž• ADDED: Introduced DOMpurify library to sanitize generated HTML before display (#183)
    • πŸ”„ CHANGED: Force JSON request for getting paste data & password retry (#216)
    • πŸ”„ CHANGED: Minimum required PHP version is 5.4 (#186)
    • ⚑️ CHANGED: Shipped .htaccess files were updated for Apache 2.4 (#192)
    • πŸ”„ CHANGED: Cleanup of bootstrap template variants and moved icons to img directory
    • πŸ”„ CHANGED: Removed option to hide clone button on expiring pastes, since this requires reading the paste for rendering the template, which leaks information on the pastes state
    • ⬆️ CHANGED: Upgrading libraries to: SJCL 1.0.7, jQuery 3.3.1, Base64 2.4.5, Showdown 1.8.6, DOMpurify 1.0.5 & Prettify 453bd5f
    • πŸ”¨ CHANGED: Refactored JavaScript code, making it modular with private and public functions, making it much easier to maintain (#178)
    • πŸ›  FIXED: To counteract regressions introduced by the refactoring, we finally introduced property based unit testing for the JavaScript code, this caught several regressions, but also some very old bugs not found so far (#32)

    πŸš€ More details about the plans for future releases and on how you can help the project achieve them, can be found in the PrivateBin version 1.2 release announcements.

  • v1.1.1 Changes

    October 10, 2017

    This release fixes leakage of configuration and raw pastes that can occur in some setups.

    On 29th of September, @pstn reported a medium data leak vulnerability in PrivateBin. If either a) a non-apache webserver is used or b) apache has "AllowOverride" disabled and the installation was not secured by changing the path of sensitive folders, these can be accessed from the outside. This release fixes this by converting these files from INI/JSON to php files, so that they are protected even under those conditions.

    Further details on why this is an issue and its implications can be found in our report on the vulnerability. It also describes methods to check if your server is currently affected by the issue.

    πŸš€ Benefits of switching to the new release

    ⚑️ Even if you are currently using an apache server and are not affected by this issue, we would advise to plan to update soon. Some of the sites affected by this reported that they had changed their webserver setup, inadvertedly becoming affected. You might do the same in the future, too, and forget to check your PrivateBin setups security.

    ⚑️ Alternatively consider to securing your installation by changing the path of folders containing sensitive information. We have updated our installation instructions, stressing our security recommendations.

    ⚑️ Update procedure

    ⚑️ Apart from updating the libraries and the javascript files, make sure that your PHP process can also write to the cfg folder. The next call to your privatebin installation will convert the conf.ini file into conf.php. Accessing pastes will convert these, too. Additionally we also are hooking into the purge mechanism to gradually convert pastes that are not frequently accessed.

    Note: @rugk has updated his expired pgp key. The fingerprint stayed the same , but you may need to update it.

    πŸ”„ Changes since version 1.1

    • πŸ”„ CHANGED: Switched to .php file extension for configuration and data files, to avoid leaking data in unprotected installations.