Skip to content

[SECURITY] Harden event UID resolution - #637

Merged
sfroemkenjw merged 1 commit into
TYPO3_10-4from
security/harden-event-uid-resolution-10-4
Aug 27, 2026
Merged

sfroemkenjw merged 1 commit into
TYPO3_10-4from
security/harden-event-uid-resolution-10-4

Conversation

@sfroemkenjw

Copy link
Copy Markdown
Contributor

Summary

  • Backport of 489b934 from main ([SECURITY] Sanitize action name and harden event UID resolution #633) to TYPO3 10.4/11.5 - RestrictAccessEventListener part only.
  • RestrictAccessEventListener::isAccessAllowed() now hardens event UID resolution against non-scalar/malicious event request arguments instead of blindly (int)-casting them.
  • The AttachOrganizerToEventMiddleware part of the original patch was checked but does not apply to this branch: no such middleware exists here. Organizer assignment on this branch is handled by AddOrganizerToEventRecordEventListener (PSR-14, fires after Extbase has already resolved the action name from the request), which does not read the raw $_POST['action'] string the way the middleware on main/TYPO3_12-4 does - so the case-based action-name bypass (Create/CREATE) does not exist on this branch's architecture.
  • All classes/functions used in the patch (is_array(), (int), ??) are plain PHP, already-imported TYPO3 classes are unchanged - no new compatibility shim (compat_version) needed for TYPO3 10.4/11.5 or PHP 7.4+.

Test plan

  • composer validate (PHP 7.4 and 8.0, matching the CI matrix in .github/workflows/ci.yml)
  • composer ci:php:lint (PHP 7.4 and 8.0) - clean
  • Note: this branch has no Unit/Functional test suite (removed via 09bea4f, "Not working because of missing secure TYPO3 versions"); CI here only runs validate + lint, both green.

🤖 Generated with Claude Code

Backport of 489b934 from main (#633),
RestrictAccessEventListener part only.

Hardens RestrictAccessEventListener against non-scalar/malicious "event"
request arguments when resolving the event UID, instead of blindly
(int)-casting them.

The AttachOrganizerToEventMiddleware part of the original patch does not
apply here: this branch has no such middleware. Organizer assignment is
handled by AddOrganizerToEventRecordEventListener, a PSR-14 listener that
reads the action name from the already-dispatched Extbase request instead
of the raw POST body, so the case-based action-name bypass fixed on main
does not exist on this branch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sfroemkenjw
sfroemkenjw merged commit a34ced3 into TYPO3_10-4 Aug 27, 2026
2 checks passed
@sfroemkenjw
sfroemkenjw deleted the security/harden-event-uid-resolution-10-4 branch August 27, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant