Skip to content

fix(core): block object injection via unserialize() - #2449

Merged
Seiger merged 1 commit into
evolution-cms:3.5.xfrom
elcreator:fix/unserialize-object-injection
Sep 9, 2026
Merged

fix(core): block object injection via unserialize()#2449
Seiger merged 1 commit into
evolution-cms:3.5.xfrom
elcreator:fix/unserialize-object-injection

Conversation

@elcreator

Copy link
Copy Markdown

The page cache and the sys_files_checksum setting were rebuilt with a plain unserialize(), so a single write into assets/cache or into the settings table ran a vendor POP chain on the next request. Both only ever store arrays; allowed_classes => false keeps them that way.

A checksum that did not deserialize to an array now falls back to an empty one instead of fataling in array_key_exists().

The page cache and the sys_files_checksum setting were rebuilt with a
plain unserialize(), so a single write into assets/cache or into the
settings table ran a vendor POP chain on the next request. Both only
ever store arrays; allowed_classes => false keeps them that way.

A checksum that did not deserialize to an array now falls back to an
empty one instead of fataling in array_key_exists().

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WC5LNcxoHHhRMZadXXbbXi
@Seiger
Seiger merged commit 91ac6c9 into evolution-cms:3.5.x Sep 9, 2026
6 checks passed
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.

2 participants