p PatchFirst

PatchFirst · Latest vulnerabilities

PHP stack vulnerabilities · Page 36

Vulnerabilities published for PHP in the last 30 days: 217. 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: 7231

  1. CVE-2026-45075

    High · CVSS 8.3EPSS 0.43%Fix available

    Symfony: HEAD Request Bypasses methods: ['GET'] Filter in #[IsGranted] / #[IsSignatureValid] / #[IsCsrfTokenValid]

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 7.4.12 and 8.0.12, method-scoped #[IsGranted], #[IsSignatureValid], and #[IsCsrfTokenValid] attributes can be configured for GET only, but Symfony routes HEAD requests to the GET handler while the attribute check is skipped, allowing protected controllers to execute and leak headers or perform side effects. This issue is fixed in versions 7.4.12 and 8.0.12.

    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  2. CVE-2026-47767

    High · CVSS 8.3EPSS 0.72%Fix available

    Symfony: SymfonyRuntime CVE-2024-50340 Patch Bypass: Web Requests Can Still Set APP_ENV/APP_DEBUG via parse_str/SAPI Argv Mismatch

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 5.4.46 until 5.4.52, 6.4.40, 7.4.12, and 8.0.12, the CVE-2024-50340 fix gated runtime argv parsing on empty($_GET), but parse_str() and the web SAPI can disagree, allowing a crafted query string to leave $_GET empty while $_SERVER['argv'] still carries attacker-controlled --env or --no-debug flags that change APP_ENV or APP_DEBUG. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 5.4.52+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  3. CVE-2026-45064

    Low · CVSS 2.3EPSS 0.34%Fix available

    Symfony: HtmlSanitizer URL Attributes Pass Through BiDi Override Characters → Visual href Spoofing

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.1.0-BETA1 until 6.4.40, 7.4.12, and 8.0.12, UrlSanitizer::parse() passes Unicode explicit-direction BiDi formatting characters through into sanitized href and src attributes, allowing sanitized content to display a link destination that visually differs from the actual destination and enabling phishing-style visual spoofing. This issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12.

    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  4. CVE-2026-45063

    Critical · CVSS 9.1EPSS 0.37%Fix available

    Symfony: Identity Spoofing via Unanchored DN Regex in X509Authenticator

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, X509Authenticator extracts the user identifier from $_SERVER['SSL_CLIENT_S_DN'] with an unanchored regex that matches emailAddress= anywhere in the distinguished name, allowing an attacker with a trusted certificate containing emailAddress=victim inside another RDN value such as CN to authenticate as the victim. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 5.4.53+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  5. CVE-2026-45070

    Medium · CVSS 6.3EPSS 0.39%Fix available

    Symfony: Email Header Injection via Non-Token Characters in Mime Parameter Names

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, Symfony\Component\Mime\Header\ParameterizedHeader validates and encodes parameter values but emits parameter names verbatim, allowing a caller that derives a parameter name from untrusted input to include CRLF or other non-token bytes and inject additional headers into rendered structured mail headers such as Content-Type or Content-Disposition. This issue is reported as fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 6.4.40
    • Update to 7.4.12
    • Update to 8.0.12
    Published Updated
  6. CVE-2026-45073

    Medium · CVSS 6.3EPSS 0.46%Fix available

    Symfony: SQL Injection in PdoAdapter::doClear() via Unsanitized $prefix

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, PdoAdapter::doClear() builds a DELETE statement using a namespace derived from the caller-supplied $prefix without binding or escaping it, allowing a caller able to influence $prefix to break out of the LIKE literal and alter query semantics or deletion scope. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 5.4.53+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  7. CVE-2026-45753

    Low · CVSS 2.1EPSS 0.34%Fix available

    Symfony: HtmlSanitizer UrlAttributeSanitizer Omits action/formaction/poster/cite — javascript: URI Survives Sanitization (XSS)

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.1.0-BETA1 until 6.4.40, 7.4.12, and 8.0.12, UrlAttributeSanitizer::getSupportedAttributes() omits URL-valued attributes including action, formaction, poster, and cite, so configurations that admit those attributes can leave javascript: URIs unsanitized and enable XSS when the resulting HTML is rendered or a victim submits a form or clicks a button. This issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12.

    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  8. CVE-2026-45072

    Low · CVSS 2EPSS 0.3%Fix available

    Symfony: Stored XSS in WebProfiler CodeExtension::fileExcerpt() — Unescaped Non-PHP File Rendering

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.4.24 until 6.4.40, 7.4.12, and 8.0.12, the development profiler file_excerpt Twig filter escapes PHP files through highlight_string() but interpolates lines from non-PHP files directly into <code> elements, allowing stored XSS against a developer who opens an attacker-written file such as var/log/dev.log in the profiler. This issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12.

    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  9. CVE-2026-45756

    High · CVSS 8.2EPSS 0.63%Fix available

    Symfony: JsonPath Evaluates Attacker-Controlled Regular Expressions in match()/search() Without Limits — ReDoS

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 7.3.0-BETA1 until 7.4.12 and 8.0.12, the JsonPath component compiles attacker-controlled match() and search() filter patterns directly into preg_match() without a length cap, i-regexp restriction, or bounded backtracking, allowing catastrophic-backtracking expressions to pin worker CPU and cause denial of service. This issue is fixed in versions 7.4.12 and 8.0.12.

    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  10. CVE-2026-45066

    Low · CVSS 2.3EPSS 0.34%Fix available

    Symfony: HtmlSanitizer allowLinkHosts() / allowMediaHosts() Bypass via URL-Parser Differentials and <area> Misclassification

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.1.0-BETA1 until 6.4.40, 7.4.12, and 8.0.12, HtmlSanitizer URL sanitization can allow off-allowlist URLs through allowLinkHosts() or allowMediaHosts() because UrlSanitizer::parse() follows RFC 3986 while browsers follow WHATWG URL parsing, and because <area href> is checked against the media policy rather than the link policy. This issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12.

    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  11. CVE-2026-45074

    High · CVSS 7.6EPSS 0.49%Fix available

    Symfony: Cas2Handler Derives CAS service URL from Client Host Header → Cross-Service Ticket Replay

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 7.1.0 until 7.4.12 and 8.0.12, Cas2Handler builds the CAS service parameter from Request::getSchemeAndHttpHost(), which reflects an attacker-controlled Host header when framework.trusted_hosts is not configured; an attacker controlling another application registered with the same CAS server can replay a victim ticket against the Symfony application and authenticate as the victim. This issue is fixed in versions 7.4.12 and 8.0.12.

    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  12. CVE-2026-45077

    High · CVSS 8.3EPSS 0.67%Fix available

    Symfony: Unauthenticated PHP Object Deserialization in MonologBridge server:log Listener

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, the server:log listener (Symfony\Bridge\Monolog\Command\ServerLogCommand) binds to 0.0.0.0:9911 by default and processes each received frame with unserialize(base64_decode($message)) without authentication, integrity checks, or an allowed_classes allowlist, allowing any reachable host to submit attacker-chosen serialized PHP payloads that can crash the listener and may trigger object-injection gadget effects. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 5.4.53+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  13. CVE-2026-45065

    Low · CVSS 2.3EPSS 0.35%Fix available

    Symfony: UrlGenerator Route-Requirement Bypass via Unanchored Regex Alternation → Off-Site //host URL Injection

    Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, UrlGenerator validates route parameters against a pattern built as ^ plus the raw requirement plus $; with ungrouped alternations, middle alternatives match as unanchored substrings, allowing a value such as //evil.com to satisfy a common locale requirement and generate a protocol-relative off-site URL. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.

    • Update to 5.4.52
    • Update to 5.4.53+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  14. CVE-2026-45067

    Medium · CVSS 6.3EPSS 0.6%Fix available

    Symfony: Email Header / SMTP Command Injection via CRLF in Symfony\Component\Mime\Address

    ### Description `Symfony\Component\Mime\Address` is the value-object every Symfony Mailer address (to/cc/bcc/from/reply-to) flows through; its constructor is documented as validating the address and throwing on invalid input, so developers treat it as a security boundary. The constructor accepts email addresses whose local-part (the part before `@`) is an RFC-5322 *quoted string* containing raw `\r\n` bytes — e.g. `"x\r\nBcc: attacker@evil"@example.com`. The stored address is later emitted verbatim into (1) the rendered message headers and (2) `SmtpTransport`'s `MAIL FROM:<...>` / `RCPT TO:<...>` protocol lines, turning the embedded CRLF in

    • Update to 5.4.52
    • Update to 5.4.53+dfsg-0+deb12u1
    • Update to 6.4.40
    • Update to 6.4.41+dfsg-0+deb13u1
    • Update to 7.4.12
    • Update to 7.4.12+dfsg-1
    • Update to 8.0.12
    Published Updated
  15. CVE-2026-45710

    Low · CVSS 3.5No fix published

    FacturaScripts: Stored XSS in WidgetVariante and WidgetSubcuenta modal lists via HTML-attribute decoding of `Tools::noHtml`-escaped quotes inside `onclick=`

    ## Summary `WidgetVariante::renderVariantList` (`Core/Lib/Widget/WidgetVariante.php:298-330`) and `WidgetSubcuenta::renderSubaccountList` (`Core/Lib/Widget/WidgetSubcuenta.php:290-321`) build the `<tr onclick="...">` row for each modal hit by concatenating the user-controlled `referencia` / `codsubcuenta` field directly into a single-quoted JavaScript string literal inside an HTML `onclick` attribute. The defender's intuition is that `Tools::noHtml` (called in `Variante::test()` and `Subcuenta::test()`) replaces `'` with the HTML entity `&#39;`, neutralising the JavaScript string break. The intuition is wrong: HTML attribute parsing **decode

    Published Updated
  16. CVE-2026-45263

    High · CVSS 8No fix published

    FacturaScripts: CSV formula injection in CSVExport allows authenticated low-priv users to plant payloads that execute when an admin opens the export

    ## Summary > **Live PoC verified 2026-04-30** against a stock FacturaScripts master at `127.0.0.1:8081`. A low-privilege user (`lowpriv`) created a customer with `nombre = "=SUM(1+1)*cmd|/c calc!A1"`. An admin then exported `ListCliente` to CSV via `?action=export&option=CSV`. The downloaded file contains the raw payload as the first cell of the `nombre` column, with no leading single quote and no escape. Excel and LibreOffice will execute the formula on open, including DDE invocations such as `=cmd|'/c calc'!A1` that spawn arbitrary processes on the admin workstation. `Core/Lib/Export/CSVExport.php::writeData()` wraps every cell in the con

    Published Updated
  17. CVE-2026-45693

    High · CVSS 7.5No fix published

    FacturaScripts: Unauthenticated Path Traversal in Static File Controllers Reads Private MyFiles Documents

    ### Summary The static file controllers in FacturaScripts decide whether a request is authorized by looking at the URL string instead of the canonical filesystem path. A request that starts with an allow-listed folder name but contains a `../` segment in the middle ends up serving a file from a different directory than the one the URL pretended to point at. This makes any file inside the FacturaScripts installation readable without authentication as long as the file's extension is on the controllers' allow-list (`pdf`, `xlsx`, `docx`, `csv`, `sql`, `zip`, `xml`, `json`, `xsig`, etc.). In practice this leaks the documents the application is s

    Published Updated
  18. CVE-2026-45262

    Critical · CVSS 9.9No fix published

    FacturaScripts: Authenticated SQL injection in the FacturaScripts REST API filter parameter via parenthesis bypass in `Where::sqlColumn`

    ## Summary > **Live PoC verified 2026-04-30** against a stock FacturaScripts master at `127.0.0.1:8081`. A scoped `ApiKey` with `fullaccess=0` and an `ApiAccess` row granting `allowget=1` on the `clientes` resource only (no other rights, no UI session, no admin) issued one `GET /api/3/clientes?filter[(0)UNION%20SELECT%20...]=` request and the response body contained the raw bcrypt hash of the admin user's password (`$2y$12$sLfA/XCqnjqLmYJwK.2V7eUHrHTHcQfkTYYfs1.lxX3OHrsmmkMGO`) and the admin's `logkey` cookie value. The leaked `logkey` was injected into a fresh cookie jar and `GET /AdminPlugins` returned 200 with the admin plugin management

    Published Updated
  19. CVE-2026-55651

    High · CVSS 7.1EPSS 0.23%No fix published

    Easy!Appointments Vulnerable to Appointments Takeover via Excessive Data Exposure

    Easy!Appointments is a self hosted appointment scheduler. In version 1.5.2, an Excessive Data Exposure vulnerability in the customers search endpoint allows an authenticated user to obtain appointment hashes belonging to other users. Using these hashes, an attacker can modify or delete appointments of other providers, resulting in an Appointments Takeover. Version 1.6.0 fixes the issue.

    Published Updated
  20. CVE-2026-52841

    Low · CVSS 3.1EPSS 0.21%No fix published

    Easy!Appointments: Authorization bypass in Google OAuth provider binding lets any backend user rebind a peer provider's Google sync

    Easy!Appointments is a self hosted appointment scheduler. In versions prior to 1.6.0, `Google::oauth` at `application/controllers/Google.php:278` stores its URL-supplied `provider_id` in the session, and `oauth_callback` saves the issued Google OAuth token against that row without checking the caller owns the provider. Any logged-in backend user (admin, provider, or secretary) rebinds a peer provider's Google sync to a Google account they control. The peer's appointments then sync into the attacker's calendar with each customer's name and email attached as attendee data. Version 1.6.0 patches the issue.

    Published Updated

Check your server

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

Check your server →