CVE-2026-46635
published 2026-07-14CVE-2026-46635: Twig is a template language for PHP. Prior to 3.26.0, the column filter passes object arrays to PHP array_column(), which reads public and magic properties…
PriorityP423medium4.3CVSS 3.1
AVNACLPRLUINSUCLINAN
EPSS
0.33%
26.3th percentile
Twig is a template language for PHP. Prior to 3.26.0, the column filter passes object arrays to PHP array_column(), which reads public and magic properties without reaching CoreExtension::getAttribute() or SandboxExtension::checkPropertyAllowed(), allowing an untrusted template author with column in allowedFilters to read properties that are not in the sandbox allowlist. This issue is fixed in version 3.26.0.
Affected
4 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| symfony | twig | < 3.26.0 | 3.26.0 |
| twig | twig | >= 0 < 3.27.0 | 3.27.0 |
| twig | twig | >= 0 < 3.26.0 | 3.26.0 |
| twigphp | twig | < 3.26.0 | 3.26.0 |
CVSS provenance
nvdv3.14.3MEDIUMCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
nvdv4.05.3MEDIUMCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
ghsa2.2LOW
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
Twig: Sandbox property allowlist bypass via the `column` filter under `SourcePolicyInterface`
ghsa·2026-06-30
CVE-2026-48808 [MEDIUM] CWE-693 Twig: Sandbox property allowlist bypass via the `column` filter under `SourcePolicyInterface`
Twig: Sandbox property allowlist bypass via the `column` filter under `SourcePolicyInterface`
### Description
This is a residual bypass of CVE-2026-46635 / GHSA-vcc8-phrv-43wj that only affects sandboxing enabled through `SourcePolicyInterface` (and not the regular global sandbox mode).
`CoreExtension::column()` receives the active sandbox state via the `needs_is_sandboxed` channel as a boolean `$isSandboxed`, but then routes the per-element property reads through `SandboxExtension::checkPropertyAllowed()` without forwarding the current `Source`. `SandboxExtension::checkPropertyAllowed()` re-evaluates `isSandboxed($source)` internally; with `$source = null` the `SourcePolicyInterface`-driven decision is lost, the method short-circuits to "not sandboxed", and the property allowlist is ne
GHSA
Twig: Sandbox property allowlist bypass via the `column` filter (array_column on objects)
ghsa·2026-05-21·CVSS 2.2
CVE-2026-46635 [LOW] CWE-863 Twig: Sandbox property allowlist bypass via the `column` filter (array_column on objects)
Twig: Sandbox property allowlist bypass via the `column` filter (array_column on objects)
### Description
The `column` filter passes its input straight to PHP's native `array_column()`. When the array elements are objects, `array_column()` reads `$obj->$name` (and `$obj->$index`) directly, including invoking `__get`/`__isset`. Because this property read happens entirely in PHP native code and never reaches `CoreExtension::getAttribute()`, `SandboxExtension::checkPropertyAllowed()` is never consulted.
An untrusted template author with `column` in their `allowedFilters` list can therefore read any public or magic property of any object reachable in the render context, regardless of the `SecurityPolicy` `allowedProperties` list. This is a variant of CVE-2024-51755 / GHSA-jjxq-ff2g-95vh tha
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [epel-all]
bugzilla·2026-07-15·CVSS 4.3
CVE-2026-46635 [MEDIUM] CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [epel-all]
CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [epel-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
Twig is a template language for PHP. Prior to 3.26.0, the column filter passes object arrays to PHP array_column(), which reads public and magic properties without reaching CoreExtension::getAttribute() or SandboxExtension::checkPropertyAllowed(), allowing an untrusted template author with column in allowedFilters to read properties that are not in the sandbox allowlist. This issue is fixed in version 3.26.0.
Bugzilla
CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [fedora-all]
bugzilla·2026-07-15·CVSS 4.3
CVE-2026-46635 [MEDIUM] CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [fedora-all]
CVE-2026-46635 phpMyAdmin: Twig: Information disclosure via column filter in template language [fedora-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
Twig is a template language for PHP. Prior to 3.26.0, the column filter passes object arrays to PHP array_column(), which reads public and magic properties without reaching CoreExtension::getAttribute() or SandboxExtension::checkPropertyAllowed(), allowing an untrusted template author with column in allowedFilters to read properties that are not in the sandbox allowlist. This issue is fixed in version 3.26.0.
Bugzilla
CVE-2026-46635 twig/twig: Twig: Information disclosure via column filter in template language
bugzilla·2026-07-14·CVSS 4.3
CVE-2026-46635 [MEDIUM] CVE-2026-46635 twig/twig: Twig: Information disclosure via column filter in template language
CVE-2026-46635 twig/twig: Twig: Information disclosure via column filter in template language
Twig is a template language for PHP. Prior to 3.26.0, the column filter passes object arrays to PHP array_column(), which reads public and magic properties without reaching CoreExtension::getAttribute() or SandboxExtension::checkPropertyAllowed(), allowing an untrusted template author with column in allowedFilters to read properties that are not in the sandbox allowlist. This issue is fixed in version 3.26.0.
2026-07-14
Published