High
Twig: Sandbox `__toString()` policy bypass via `Traversable` in `join` and `replace` filters
Type: advisorySources: OSV
Twig is a template language for PHP. Prior to 3.27.0, the sandbox __toString() checks do not fully cover Traversable values passed to join and replace filters or operands evaluated by the in and not in operators, allowing contained Stringable objects to be coerced to strings without consulting the sandbox policy. This issue is fixed in version 3.27.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-48807
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 18:15 UTC · Revision 1
Source evidence
Twig: Sandbox `__toString()` policy bypass via `Traversable` in `join` and `replace` filters
core-osv · Original sourcePublished 14 Jul 2026, 21:29 UTC
Twig is a template language for PHP. Prior to 3.27.0, the sandbox __toString() checks do not fully cover Traversable values passed to join and replace filters or operands evaluated by the in and not in operators, allowing contained Stringable objects to be coerced to strings without consulting the sandbox policy. This issue is fixed in version 3.27.0.
osv:CVE-2026-48807
Complete source record
{
"id": "ddb4898baf067594ed50f3d4ea13dfc44b2823009f065c0bf2f9f73642c203ab",
"url": "https://osv.dev/vulnerability/CVE-2026-48807",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Twig: Sandbox `__toString()` policy bypass via `Traversable` in `join` and `replace` filters",
"summary": "Twig is a template language for PHP. Prior to 3.27.0, the sandbox __toString() checks do not fully cover Traversable values passed to join and replace filters or operands evaluated by the in and not in operators, allowing contained Stringable objects to be coerced to strings without consulting the sandbox policy. This issue is fixed in version 3.27.0.",
"evidence": "osv:CVE-2026-48807",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-48807",
"aliases": [
"CVE-2026-48807",
"GHSA-8x9c-rmqh-456c"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/twigphp/twig",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "04ae1bfe9463c816cf72ca0abe7eae2c77a9a9ed"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3.27.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "04ae1bfe9463c816cf72ca0abe7eae2c77a9a9ed"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v3.27.0"
},
{
"cpe": "cpe:2.3:a:symfony:twig:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.27.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v3.26.0",
"v3.25.0",
"v3.24.0",
"v3.23.0",
"v3.22.2",
"v3.22.1",
"v3.22.0",
"v3.21.1",
"v3.21.0",
"v3.20.0",
"v3.19.0",
"v3.18.0",
"v3.17.1",
"v3.17.0",
"v3.16.0",
"v3.15.0",
"v3.14.0",
"v3.11.0",
"v3.13.0",
"v3.12.0",
"v3.10.3",
"v3.10.2",
"v3.10.1",
"v3.10.0",
"v3.9.3",
"v3.9.2",
"v3.9.1",
"v3.9.0",
"v3.8.0",
"v3.7.1",
"v3.7.0",
"v3.6.1",
"v3.6.0",
"v3.5.1",
"v3.5.0",
"v3.4.3",
"v3.4.2",
"v3.4.1",
"v3.4.0",
"v3.3.10",
"v3.3.9",
"v3.3.8",
"v3.3.7",
"v3.3.6",
"v3.3.5",
"v3.3.4",
"v3.3.3",
"v3.3.2",
"v3.3.1",
"v3.3.0",
"v3.2.1",
"v3.1.1",
"v3.1.0",
"v3.0.5",
"v3.0.4",
"v3.0.3",
"v3.0.2",
"v3.0.1",
"v3.0.0",
"v3.0.0-BETA1",
"v2.8.1",
"v2.8.0",
"v2.7.4",
"v2.7.3",
"v2.7.2",
"v2.7.1",
"v2.7.0",
"v2.6.2",
"v2.6.1",
"v2.6.0",
"v2.5.0",
"v2.4.8",
"v2.4.7",
"v2.4.6",
"v2.4.5",
"v2.4.4",
"v2.4.3",
"v2.4.2",
"v2.4.1",
"v2.4.0",
"v2.3.2",
"v2.3.1",
"v2.3.0",
"v2.2.0",
"v2.1.0",
"v2.0.0",
"v1.18.0",
"v1.17.0",
"v1.16.3",
"v1.16.2",
"v1.16.1",
"v1.16.0",
"v1.15.1",
"v1.15.0",
"v1.14.2",
"v1.14.1",
"v1.14.0",
"v1.13.2",
"v1.13.1",
"v1.13.0",
"v1.12.3",
"v1.12.2",
"v1.12.1",
"v1.12.0",
"v1.12.0-RC1",
"v1.11.1",
"v1.11.0",
"v1.10.3",
"v1.10.2",
"v1.10.1",
"v1.10.0",
"v1.9.2",
"v1.9.1",
"v1.9.0",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.4",
"v1.6.3",
"v1.6.2",
"v1.6.1",
"v1.5.1",
"v1.6.0",
"v1.5.0",
"v1.5.0-RC2",
"v1.5.0-RC1",
"v1.4.0",
"v1.4.0-RC2",
"v1.4.0-RC1",
"v1.3.0",
"v1.3.0-RC1",
"v1.2.0",
"v1.2.0-RC1",
"v1.1.2",
"v1.1.1",
"v1.1.0",
"v1.1.0-RC3",
"v1.1.0-RC2",
"v1.1.0-RC1",
"v1.0.0",
"v1.0.0-RC2",
"v1.0.0-RC1",
"v0.9.10",
"v0.9.9",
"v0.9.8",
"v0.9.7",
"v0.9.6",
"v0.9.5",
"v0.9.4",
"v0.9.2",
"v0.9.1",
"v0.9.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48807.json"
}
}
],
"modified": "2026-10-28T02:30:21.799793372Z",
"provider": "osv",
"references": [
"https://github.com/twigphp/Twig/releases/tag/v3.27.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48807.json",
"https://github.com/twigphp/Twig/security/advisories/GHSA-8x9c-rmqh-456c",
"https://nvd.nist.gov/vuln/detail/CVE-2026-48807"
],
"provider_metadata": {
"cwe_ids": [
"CWE-693",
"CWE-863"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48807.json"
}
},
"related_cves": [
{
"value": "CVE-2026-48807",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 488247,
"published_at": "2026-07-14T21:29:15.934+00:00"
}