View Issue Details

IDProjectCategoryView StatusLast Update
0037219mantisbtsecuritypublic2026-05-31 19:32
Reporterxananasx7 Assigned Tocommunity  
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Summary0037219: Security: Add allowed_classes => false to unserialize() calls to prevent PHP Object Injection
Description

The following functions call unserialize() without specifying allowed_classes:

  • filter_api.php (filter deserialization from session/database)
  • email_queue_api.php (email queue deserialization)
  • safe_unserialize() helper

This leaves them potentially vulnerable to PHP Object Injection (POI) via gadget
chains using classes already loaded in memory, even when the data source appears
trusted.

Fix: Add ['allowed_classes' => false] as a defence-in-depth hardening measure.
The deserialized data in these locations is always a plain array of scalar values —
no object instantiation is expected — so this change does not affect functionality.

GitHub PR with the fix: https://github.com/mantisbt/mantisbt/pull/2229

TagsNo tags attached.

Activities

dregad

dregad

2026-05-31 19:11

developer   ~0071207

Thanks for creating the issue. I'll review the PR as time allows.