p PatchFirst

PatchFirst · Latest vulnerabilities

PHP stack vulnerabilities · Page 34

Vulnerabilities published for PHP in the last 30 days: 216. Listed in the KEV catalogue: 2.

Filter vulnerabilities
PHP

Early warnings

Fresh vulnerability reports from vendor announcements and security news. These warnings do not change the security rating.

  1. php

    No fix published

    PHP: remote code execution

    According to OpenNet, PHP has a remote code execution vulnerability (CVE-2026-115560). The exact affected versions are unspecified. The report does not name a fixed version.

    What to do now: Check whether a PHP update with the fix is available and install it.

    CVE-2026-115560

Vulnerabilities: 7229

  1. CVE-2026-49273

    High · CVSS 8.6Fix available

    MantisBT: Remote Code Execution via eval() Class Hoisting in adm_config_set.php

    MantisBT 2.28.3 and earlier contains a remote code execution vulnerability in the admin "Manage Configuration" feature (adm_config_set.php). When setting a configuration value with a non-string type (integer, float, complex), the value is passed through ConfigParser -> Tokenizer, which calls *eval()* with a `return;` prefix intended to prevent code execution. However, PHP hoists function and class declarations at compile time, even past a *return* statement. An attacker can define a class in the eval()'d code that hijacks a class loaded later via PHP's autoloader, achieving arbitrary code execution. This vulnerability requires administrator

    • Update to 2.28.4
    Published Updated
  2. CVE-2026-47142

    High · CVSS 8.5Fix available

    MantisBT: SQL Injection via history_order Configuration Value

    MantisBT 2.28.3 and earlier versions contains a SQL injection vulnerability in core/history_api.php. The history_order configuration value is concatenated directly into a SQL ORDER BY clause without any sanitisation, parameterization, or validation against a whitelist. An administrator can set this configuration value via the web UI (adm_config_set.php) or the REST API (PATCH /api/rest/config). The injected SQL then executes whenever any user views a bug with history entries. ### Impact - Sensitive data extraction from the entire bugtracker database including user credentials (cookie_string, password hashes), API tokens, and private issue d

    • Update to 2.28.4
    Published Updated
  3. CVE-2026-45793

    High · CVSS 7.5EPSS 1.02%Fix available

    Composer: Github Actions issued GITHUB_TOKEN disclosure in GitHub Actions logs

    Composer is a dependency Manager for the PHP language. Prior to 1.10.28, 2.2.28, and 2.9.8, Composer\IO\BaseIO::loadConfiguration() validates GitHub OAuth tokens with the regex ^[.A-Za-z0-9_]+$ and interpolates rejected tokens into an UnexpectedValueException; GitHub Actions GITHUB_TOKEN values using the ghs_<id>_<base64url-JWT> format can contain -, fail validation, and be disclosed to stderr or CI logs. This issue is fixed in versions 1.10.28, 2.2.28, and 2.9.8.

    • Update to 1.10.28
    • Update to 2.10.0-1
    • Update to 2.2.28
    • Update to 2.5.5-1+deb12u5
    • Update to 2.8.8-1+deb13u3
    • Update to 2.9.8
    Published Updated
  4. CVE-2026-61453

    Medium · CVSS 5.1EPSS 0.2%Fix available

    Grav before 2.0.1 XSS via Twig String Concatenation

    Grav v2.0.0 contains a cross-site scripting vulnerability (fixed in 2.0.1). The XSS blueprint validator (Security::detectXss()) runs on raw page content before Twig processing. When Twig content processing is enabled (twig_content.process_enabled: true), an attacker with page-write API permission can use Twig's string concatenation operator (~) to dynamically construct event handler names, dangerous tag names, or dangerous protocols at render time (e.g. {% set x = "on" ~ "error" %}). The validator sees only the harmless Twig expression and allows the content, but after Twig rendering the output (rendered via {{ page.content|raw }}) contains a

    • Update to 2.0.1
    Published Updated
  5. CVE-2026-61449

    High · CVSS 7.1EPSS 0.3%Fix available

    Grav before 2.0.2 Decompression Bomb via Forged ZIP Size

    Grav 2.0.1 contains a decompression-bomb size-cap bypass in ZipArchiver and GPM\Installer. The size bound introduced in 2.0.1 sums the uncompressed size declared in each entry's ZIP central-directory header (ZipArchive::statIndex()['size']) and rejects archives exceeding system.gpm.archive.max_uncompressed_size before extraction. Because this declared size is attacker-forgeable and is not cross-checked against the actual inflated stream, a crafted archive declaring tiny per-entry sizes passes the cap while extractTo() writes the real, much larger content, filling disk or exhausting inodes. The archive must be supplied by a package source or a

    • Update to 2.0.2
    Published Updated
  6. CVE-2026-48807

    High · CVSS 7.1EPSS 0.37%Fix available

    Twig: Sandbox `__toString()` policy bypass via `Traversable` in `join` and `replace` filters

    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.

    • Update to 3.27.0
    • Update to 3.27.0-1
    Published Updated
  7. CVE-2026-48806

    High · CVSS 7.1EPSS 0.42%Fix available

    Twig: Sandbox `__toString()` policy bypass via dynamic mapping keys

    Twig is a template language for PHP. Prior to 3.27.0, ArrayExpression does not guard dynamic mapping keys that are coerced to strings, allowing PHP to invoke __toString() on a Stringable object used as a mapping key without calling SandboxExtension::ensureToStringAllowed(). This issue is fixed in version 3.27.0.

    • Update to 3.27.0
    • Update to 3.27.0-1
    Published Updated
  8. CVE-2026-48808

    Medium · CVSS 6EPSS 0.41%Fix available

    Twig: Sandbox property allowlist bypass via the `column` filter under `SourcePolicyInterface`

    Twig is a template language for PHP. Prior to 3.27.0, the column filter passes the active sandbox state as a boolean but does not forward the current Source to SandboxExtension::checkPropertyAllowed(), so SourcePolicyInterface decisions are lost and a template author can read public or magic properties not allowed by the sandbox policy. This issue is fixed in version 3.27.0.

    • Update to 3.27.0
    • Update to 3.27.0-1
    Published Updated
  9. CVE-2026-48805

    Medium · CVSS 5.3EPSS 0.48%Fix available

    Twig: Sandbox state regression in deprecated internal wrappers in `src/Resources/core.php`

    Twig is a template language for PHP. Prior to 3.27.0, deprecated internal wrappers in src/Resources/core.php do not forward the current sandbox state to CoreExtension::checkArrow(), arraySome(), and arrayEvery(), allowing legacy calls such as twig_array_some(), twig_array_every(), and twig_check_arrow_in_sandbox() to bypass sandbox callable restrictions. This issue is fixed in version 3.27.0.

    • Update to 3.27.0
    • Update to 3.27.0-0+deb13u1
    • Update to 3.27.0-1
    Published Updated
  10. CVE-2026-49981

    Medium · CVSS 6EPSS 0.36%Fix available

    Twig: Sandbox filter, tag and function allow-list bypass when sandbox state changes between renders for a cached `Template`

    Twig is a template language for PHP. Prior to 3.27.0, the per-template filter, tag, and function allow-list verdict is computed when a Template instance is constructed and can remain cached after sandbox state changes between renders, allowing a later sandboxed render to reuse a template that was originally checked with a different or empty policy. This issue is fixed in version 3.27.0.

    • Update to 3.27.0
    • Update to 3.27.0-0+deb13u1
    • Update to 3.27.0-1
    Published Updated
  11. CVE-2026-46637

    Medium · CVSS 5.1EPSS 0.3%Fix available

    Twig: HTML-output filters in twig/* extras incorrectly declared `is_safe => ['all']`

    Twig is a template language for PHP. Prior to 3.26.0, several filters in twig/markdown-extra and twig/cssinliner-extra are registered with is_safe => [all], causing Twig to treat plain text or HTML output as safe in HTML, JavaScript, CSS, URL, and other contexts where the output is not properly escaped. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    • Update to 3.5.1-1+deb12u3
    Published Updated
  12. CVE-2026-46638

    Medium · CVSS 6EPSS 0.47%Fix available

    Twig: `{% sandbox %}{% include %}` skips checkSecurity() on cached templates (incomplete fix for CVE-2024-45411)

    Twig is a template language for PHP. Prior to 3.26.0, {% sandbox %}{% include %} can include a template that was previously loaded outside the sandbox without re-invoking checkSecurity(), allowing the cached template to use tags, filters, and functions that should have been denied by SecurityPolicy::checkSecurity(). This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    Published Updated
  13. CVE-2026-46640

    High · CVSS 8.7EPSS 0.64%Fix available

    Twig: Arbitrary PHP code execution via `_self.(<string>)` macro-reference compilation

    Twig is a template language for PHP. From 3.15.0 until 3.26.0, _self.(<string>) and import-alias dynamic attribute syntax can concatenate an attacker-controlled string into a MacroReferenceExpression name without identifier validation, causing raw PHP to be emitted into the generated template source and executed at template-load time. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    Published Updated
  14. CVE-2026-46629

    Medium · CVSS 5.3EPSS 0.54%Fix available

    Twig: Unbounded formatter memoisation in twig/intl-extra keyed on template-controlled arguments

    Twig is a template language for PHP. Prior to 3.26.0, twig/intl-extra memoises IntlDateFormatter and NumberFormatter instances in arrays keyed by template-controlled filter arguments such as locale, pattern, and attrs, allowing a template to allocate many ICU formatter objects that remain pinned for the lifetime of the Twig\Environment. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    • Update to 3.5.1-1+deb12u3
    Published Updated
  15. CVE-2026-47730

    Medium · CVSS 5.1EPSS 0.29%Fix available

    Twig: XSS in profiler HtmlDumper via unescaped template and profile names

    Twig is a template language for PHP. From 3.0.0 until 3.26.0, Twig\Profiler\Dumper\HtmlDumper writes Profile::getTemplate() and Profile::getName() into HTML output without escaping, allowing attacker-controlled template or profile names to inject arbitrary HTML when a browser renders the profiler dump. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    • Update to 3.5.1-1+deb12u3
    Published Updated
  16. CVE-2026-46628

    Medium · CVSS 5.1EPSS 0.29%Fix available

    Twig: The `spaceless` filter implicitly marks its output as safe

    Twig is a template language for PHP. Prior to 3.26.0, the deprecated spaceless filter is registered as safe for HTML, causing Twig autoescaping to emit attacker-controlled markup unescaped when spaceless is applied to untrusted input. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    • Update to 3.5.1-1+deb12u3
    Published Updated
  17. CVE-2026-46634

    High · CVSS 7.7EPSS 0.62%Fix available

    Twig: `template_from_string()` escapes a SourcePolicy-driven sandbox via synthesized template name

    Twig is a template language for PHP. From 3.9.0 until 3.26.0, template_from_string() compiles an inner template under a synthesized __string_template__<hash> name that can fall outside a SourcePolicyInterface sandbox decision, allowing a sandboxed template that can call template_from_string and include to render an inner template without security policy enforcement. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    Published Updated
  18. CVE-2026-46633

    High · CVSS 8.7EPSS 0.69%Public exploitFix available

    Twig: PHP code injection via `{% use %}` template name

    Twig is a template language for PHP. Prior to 3.26.0, Compiler::string() does not escape single quotes when a template name from a {% use %} tag is placed inside a PHP single-quoted string literal, allowing a crafted template name to terminate the string and inject arbitrary PHP expressions into the compiled cache file. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    • Update to 3.5.1-1+deb12u3
    Published Updated
  19. CVE-2026-46639

    High · CVSS 7.1EPSS 0.39%Fix available

    Twig: Sandbox property and method bypass via object-destructuring assignment

    Twig is a template language for PHP. From 3.24.0 until 3.26.0, object-destructuring assignment compiles CoreExtension::getAttribute() with the sandbox argument hardcoded to false, disabling property and method policy checks and allowing an attacker with write access to a sandboxed Twig template to read public properties or invoke public getters on objects passed to the template engine. This issue is fixed in version 3.26.0.

    • Update to 3.26.0
    • Update to 3.26.0-1
    Published Updated
  20. CVE-2026-46635

    Medium · CVSS 5.3EPSS 0.33%Fix available

    Twig: Sandbox property allowlist bypass via the `column` filter (array_column on objects)

    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.

    • Update to 3.26.0
    • Update to 3.26.0-1
    • Update to 3.27.0-0+deb13u1
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →