Download Our Latest Software

Akeeba Release System 7.5.0 Stable

Released on: 2026-08-24 03:54 CDT

Security release

This version fixes a Download ID disclosure vulnerability. This could potentially allow a registered (not Guest) user to view the Download ID of a different user.

For more information, please consult our security advisory.

What's new

Rewritten Bleeding Edge releases. The Bleeding Edge model has been rewritten from the ground up. The scan of a Bleeding Edge category is now skipped entirely when its directory has not changed since the last scan, which removes the bulk of the per-request filesystem and database work on busy sites. Release notes are now generated automatically from a CHANGELOG file placed in the release's directory, rendered as Bootstrap 5 and Font Awesome 6 markup; the CHANGELOG file itself is consumed for that purpose, and is no longer listed as a downloadable item. This is controlled by the new “Generate changelog for BleedingEdge releases” option in the component's Options page, and replaces the old “Colorise Changelog” option, which has been removed.

Security severity flag in update streams. Joomla! 6.2 reads a element from the update XML and highlights flagged updates in Extensions, Update as well as in the extension update quick icon. Releases now have a Security severity field which is output in the Joomla! update stream, and is also shown in the backend release list, the frontend release, items and latest views, mod_arsdownloads, the ARS JSON update stream, and the JSON:API releases resource. The badge markup lives in the akeeba.ars.common.securitybadge layout, so you can override it from your site or administrator template.

The Latest Release content plugin understands Joomla! versions past 4.x. plg_content_arslatest used to match environments against hardcoded Joomla! 3 and Joomla! 4 prefixes. It now distributes the latest items by Joomla! major version, so releases targeting Joomla! 5, 6, and later are matched correctly.

Save as Copy replaces the Copy button. The Copy toolbar button duplicated the selected records straight from the list view, with no opportunity to review the result before it was written. It has been replaced by a Save as Copy button in the edit pages of Categories, Releases, Update Streams, Automatic Item Descriptions, and Environments. You now land on the edit form, adjust whatever needs adjusting, and save. Joomla's own batch copy and move is a different feature, and is unaffected. Note that this is also the change which addresses the security issue described above.

Update streams work again in several previously broken cases. Update streams returned an error page whenever a Download ID was included in the request. Asking for an update stream as JSON returned XML instead. The literal text Array was appended to the output when the URL had no format parameter. The URLs in the update stream indices, and in the JSON update stream, had double-escaped or HTML-escaped ampersands which made them unusable. All of these are fixed.

Resumable and partial downloads no longer serve corrupt data. Every HTTP Range request — the kind made by download managers, and by browsers resuming an interrupted download — appended a fragment of Joomla's error page to the file bytes, corrupting the download. This is fixed, and covered by tests.

Joomla! 7.0 readiness. We have addressed the Joomla! APIs which are removed in Joomla! 7.0, while keeping compatibility with Joomla! 4.4 and later. mod_arsdownloads has been modernised to the module dispatcher and DI service provider pattern, matching mod_arsgraph.

Hardening. We have gone over the component with a fine-toothed comb, tightening a number of things which were not exploitable, but were closer to the line than we are comfortable with. This includes authorisation on the JSON:API read and write endpoints, the control panel housekeeping task, and the frontend Download ID edit view, as well as defence-in-depth against SQL injection in the list models. Please see the CHANGELOG below for the full list.

Bug fixes and minor improvements. Please take a look at the CHANGELOG below.

Changelog

Critical bugs and important changes

  • SECURITY: Download ID disclosure

New features

  • Rewritten Bleeding Edge releases
  • Support Joomla major releases past 4.x in plg_content_arslatest
  • Support for the Joomla 6.2 security flag in update streams (gh-250)

Bug fixes

  • [HIGH] Fatal error the first time the control panel is opened, on any site which does not have Akeeba Backup installed
  • [HIGH] Resumable and partial downloads served corrupt data: an error page fragment was appended to the response body
  • [HIGH] The JSON update stream returned an error page instead of the update stream
  • [HIGH] Update streams returned an error page whenever a Download ID was included in the request
  • [LOW] A corrupt stored file hash produced an empty, invalid Content-Digest header on downloads
  • [LOW] The Item edit page used the Release page title, and always showed "Add" and "Cancel" even when editing an existing item
  • [LOW] The cache cleaner ignored the Joomla application configuration when it could not reach the application object
  • [LOW] Two items in the same release could be saved with the same alias
  • [LOW] Update streams with "liar mode" enabled never advertised minor version 10 of a Joomla major version
  • [MEDIUM] Asking for the update stream as JSON with task=stream&format=json returned XML instead
  • [MEDIUM] Double-escaped ampersands in the URLs of the all and per-category update stream indices
  • [MEDIUM] Filtering the backend Categories or Releases list by two or more tags returned an error page, which kept recurring on that list for the rest of the session
  • [MEDIUM] HTML-escaped ampersands made the download and information URLs of the JSON update stream unusable
  • [MEDIUM] Secondary Download IDs lost their user ID prefix when included in an update stream request
  • [MEDIUM] The Categories view returns an error page when the URL has no layout parameter
  • [MEDIUM] The Latest view returns an error page when no release is visible to the current user
  • [MEDIUM] Update streams appended the literal text "Array" to their output when the URL had no format parameter

Miscellaneous changes

  • Added the Save as Copy button to the Releases edit page, auto-incrementing a colliding version and alias
  • Hardening: bind the tag filter IN() list in the Categories and Releases models
  • Hardening: enforce per-category create/edit permissions on the JSON:API write endpoints
  • Hardening: gate the control panel housekeeping task behind core.manage
  • Hardening: quote ORDER BY identifiers and whitelist the sort direction in list models
  • Hardening: reject guests and enforce record ownership on the frontend Download ID edit view
  • Hardening: reject return URLs containing control characters
  • Hardening: require core.manage on the JSON:API read endpoints so unprivileged token holders cannot enumerate access-restricted downloads
  • Joomla 7.0 readiness: replace the deprecated Table::getDbo() with getDatabase() throughout the Table classes
  • Joomla 7.0 readiness: use injected application in plg_editors-xtd_arslink instead of the removed CMSPlugin $app property
  • Modernise mod_arsdownloads to the module dispatcher / DI service provider pattern
  • Replaced the Copy toolbar button with a Save as Copy button in the edit pages of Categories, Update Streams, Automatic Item Descriptions, and Environments

Release files

Akeeba Release System

pkg_ars-7.5.0.zip

478.78 Kb

PHP 8.1 PHP 8.2 PHP 8.3 Joomla! 5.4 PHP 8.4 Joomla! 6.0 PHP 8.5 Joomla! 6.1

Download now