Download Latest Version e107 v2.3.7 source code.zip (17.0 MB)
Email in envelope

Get an email when there's a new version of e107

Home / v2.3.5
Name Modified Size InfoDownloads / Week
Parent folder
e107_v2.x_to_2.3.5_upgrade.zip 2026-05-18 12.2 MB
e107_v2.x_to_2.3.5_upgrade.tar.xz 2026-05-18 8.3 MB
e107_v2.x_to_2.3.5_upgrade.tar.gz 2026-05-18 11.4 MB
e107_v1.x_to_2.3.5_upgrade.zip 2026-05-18 14.8 MB
e107_v1.x_to_2.3.5_upgrade.tar.xz 2026-05-18 10.2 MB
e107_v1.x_to_2.3.5_upgrade.tar.gz 2026-05-18 13.6 MB
e107_2.3.5_full.zip 2026-05-18 14.7 MB
e107_2.3.5_full.tar.xz 2026-05-18 10.2 MB
e107_2.3.5_full.tar.gz 2026-05-18 13.6 MB
e107 v2.3.5 source code.tar.gz 2026-05-18 15.7 MB
e107 v2.3.5 source code.zip 2026-05-18 17.0 MB
README.md 2026-05-18 2.9 kB
Totals: 12 Items   141.7 MB 0

[!CAUTION] v2.3.5 is a security release for sites on v2.3.4 or earlier. Upgrade from v2.3.4 or earlier 2.x. If your site tracks the master branch, you are already past v2.3.5, so installing it would be a downgrade. v2.4.x is planned to be the next forward step.

[!IMPORTANT] v2.3.5 ships a single fix for a CSRF vulnerability in the AJAX comment moderation endpoints. Sites that allow user comments and have at least one logged-in moderator or admin should upgrade promptly.

Highlights

  • [Security] CSRF on AJAX comment moderation (GHSA-m4hh-m278-jwg5). The AJAX delete, approve, and edit branches in comment.php previously executed when only the payload and the ADMIN gate were present, so a cross-origin POST without an e-token would still go through. A logged-in moderator visiting an attacker page could be made to block, approve, or edit comments without their knowledge. The endpoints now reject any mutation request that lacks a valid form token, and the front-end UI threads the token through the delete/approve/edit anchors so legitimate clicks keep working. (https://github.com/e107inc/e107/commit/a46a77a6)

For Administrators

Changed

  • AJAX comment moderation (security). /comment.php?mode=delete, ?mode=approve, and ?mode=edit now return {"msg":"Unauthorized access!","error":true} when the request omits or fails the e-token check. The shipped front-end UI was updated in lockstep, so this is transparent for legitimate use. If you maintain a custom theme that replaces the comment-options or comment-edit shortcodes, see the developer note below. Ref: GHSA-m4hh-m278-jwg5. (https://github.com/e107inc/e107/commit/a46a77a6)

For Developers

Changed

  • Comment-options shortcodes now emit data-token. comment_shortcodes::sc_comment_delete() and the comment-edit anchor render a data-token attribute populated from e_TOKEN. The corresponding handlers in front.jquery.js read it back and include e-token in the AJAX payload. If you ship a fork of these shortcodes or a custom AJAX client that talks to /comment.php, mirror the change — without it your delete/approve/edit calls will be rejected. Ref: GHSA-m4hh-m278-jwg5. (https://github.com/e107inc/e107/commit/a46a77a6)

Token enforcement is local to comment.php for now. The central session_handler::check() still only validates the token when one is present. If you add new AJAX mutation branches to comment.php or to similar endpoints, guard them explicitly with e107::getSession()->checkFormToken($_POST['e-token']) until the central gate is tightened.

Source: README.md, updated 2026-05-18