p PatchFirst

PatchFirst · Vulnérabilités récentes

Vulnérabilités de la pile PHP · Page n° 22

Vulnérabilités publiées pour PHP au cours des 30 derniers jours : 175. Présentes dans le catalogue KEV : 2.

Filtrer les vulnérabilités
PHP

Alertes précoces

Signalements récents de vulnérabilités issus des annonces des éditeurs et de l’actualité de la sécurité. Ces alertes ne modifient pas la note de sécurité.

  1. php

    Aucun correctif publié

    PHP : exécution de code à distance

    Selon OpenNet, PHP présente une vulnérabilité d’exécution de code à distance (CVE-2026-115560). Les versions exactes affectées ne sont pas précisées. Le message ne précise pas de version corrigée.

    Que faire maintenant : Vérifiez si une mise à jour de sécurité de PHP contenant le correctif est disponible et installez-la.

    CVE-2026-115560

Vulnérabilités : 7187

  1. CVE-2026-72702

    Critique · CVSS 9.3EPSS 0,15%Correctif disponible

    Grav CMS before 2.0.16 Origin Validation Bypass via Referer

    Grav CMS before 2.0.16 contains an origin validation bypass in the Uri::referrer() and Pages::referrerRoute() methods, which validate the Referer header using an unanchored string prefix match (str_starts_with($referrer, $base)) with no trailing delimiter. An attacker who controls a domain that begins with the victim site's origin (e.g. https://example.com.attacker.tld) can send a request with such a Referer to be treated as same-origin, bypassing the Referer-based origin check.

    • Mettez à jour vers 2.0.16
    Publication Mise à jour
  2. CVE-2026-72701

    Moyenne · CVSS 6.3EPSS 0,22%Correctif disponible

    Grav CMS before 2.0.16 Timing Attack via verifyNonce

    Grav CMS before 2.0.16 contains a timing vulnerability in Utils::verifyNonce() that uses non-constant-time string comparison with the === operator instead of hash_equals() for CSRF nonce validation. Attackers can measure response timing differences to recover valid nonce values byte-by-byte through multiple requests, weakening CSRF protection below its intended security margin.

    • Mettez à jour vers 2.0.16
    Publication Mise à jour
  3. CVE-2026-72698

    Élevée · CVSS 7.1EPSS 0,41%Correctif disponible

    Grav CMS before 2.0.16 Information Disclosure via Twig Sandbox Bypass

    Grav CMS before 2.0.16 fails to filter system, site, and theme configuration arrays in sandboxed Twig renders, allowing content editors to read sensitive configuration values. Attackers with page-content edit access can access raw configuration arrays including secrets like cache credentials by using dot notation in Twig templates, bypassing the config_denied_paths restrictions.

    • Mettez à jour vers 2.0.16
    Publication Mise à jour
  4. CVE-2026-72697

    Élevée · CVSS 7.1EPSS 0,38%Correctif disponible

    Grav CMS before 2.0.16 Path Traversal via media_directory

    Grav CMS before 2.0.16 contains a path traversal vulnerability in the media_directory() Twig function that fails to validate filesystem paths, allowing authenticated users to enumerate and access files outside intended scope. Attackers with page authoring privileges can supply arbitrary filesystem paths to media_directory() and use the allow-listed filepath accessor on Medium objects to read file contents of any file matching configured media extensions that the web server process can access.

    • Mettez à jour vers 2.0.16
    Publication Mise à jour
  5. CVE-2026-72695

    Élevée · CVSS 7.1EPSS 0,63%Correctif disponible

    Grav before 2.0.16 Path Traversal via MediaUploadTrait deleteFile

    Grav before 2.0.16 contains a path traversal vulnerability in MediaUploadTrait::deleteFile() that allows authenticated users with media management permissions to delete arbitrary files by supplying filenames with directory traversal sequences. The method validates only the basename portion of the filename while preserving unvalidated directory paths containing ../ sequences that are passed to unlink(), enabling deletion of files outside the intended media storage directory.

    • Mettez à jour vers 2.0.16
    Publication Mise à jour
  6. CVE-2026-77634

    Élevée · CVSS 8.2EPSS 0,54%Correctif disponible

    CakePHP: SmtpTransport vulnerable to CRLF header injection

    CakePHP is a rapid development framework for PHP. Prior to versions 4.5.12, 4.6.5, 5.1.8, 5.2.14, and 5.3.7 on their respective release lines, custom mail headers added with Message::setHeaders() or Message::addHeaders() do not have CRLF bytes removed, allowing header injection when user-controlled data is used in message headers. This issue is fixed in versions 4.5.12, 4.6.5, 5.1.8, 5.2.14, and 5.3.7.

    • Mettez à jour vers 4.5.12
    • Mettez à jour vers 4.6.5
    • Mettez à jour vers 5.1.9
    • Mettez à jour vers 5.2.14
    • Mettez à jour vers 5.3.7
    Publication Mise à jour
  7. CVE-2026-77635

    Critique · CVSS 9.2EPSS 0,49%Code d’exploitation publicCorrectif disponible

    CakePHP: FunctionsBuilder::jsonValue() vulerable to SQL injection with PostgresDriver

    CakePHP is a rapid development framework for PHP. Prior to versions 5.1.10, 5.2.15, and 5.3.7 on their respective release lines, FunctionsBuilder::jsonValue() with PostgresDriver is vulnerable to SQL injection when user-controlled data is supplied to the jsonPath parameter. This issue is fixed in versions 5.1.10, 5.2.15, and 5.3.7.

    • Mettez à jour vers 5.1.10
    • Mettez à jour vers 5.2.15
    • Mettez à jour vers 5.3.7
    Publication Mise à jour
  8. CVE-2026-77567

    Élevée · CVSS 8.1EPSS 0,55%Correctif disponible

    Filament: App-based MFA can be bypassed when recovery codes are enabled

    Filament is a collection of full-stack components for accelerated Laravel development. Prior to versions 4.12.0 and 5.7.0, incorrect challenge-form required-field handling allows app-based multi-factor authentication to be bypassed when recovery codes are enabled. Email-based multi-factor authentication is not affected. This issue is fixed in versions 4.12.0 and 5.7.0.

    • Mettez à jour vers 4.12.0
    • Mettez à jour vers 5.7.0
    Publication Mise à jour
  9. CVE-2026-63135

    Élevée · CVSS 8.2EPSS 0,43%Correctif disponible

    YOURLS: Stored XSS in referrer statistics chart via crafted Referer header

    YOURLS is a self-hosted, customizable URL shortener written in PHP. From 1.5.1 until 1.10.4, YOURLS stores the HTTP Referer header through yourls_get_referrer(), yourls_sanitize_url_safe(), and yourls_log_redirect(), then aggregates the value in yourls-infos.php and passes the derived domain through yourls_get_domain(), yourls_stats_pie(), and yourls_google_array_to_data_table(). The chart builder concatenates labels into inline JavaScript without JavaScript-string escaping, so an unauthenticated attacker can poison the statistics of an existing short URL with a crafted referrer. When an administrator or public stats-page viewer opens the aff

    • Mettez à jour vers 1.10.4
    Publication Mise à jour
  10. CVE-2026-59989

    Critique · CVSS 9.2EPSS 0,54%Correctif disponible

    Phalcon Volt compiler `join` filter compile-time PHP code injection (SSTI lead to RCE)

    Phalcon is a high-performance, full-stack PHP framework. In 5.15.0 and earlier, resolveFilter in phalcon/Mvc/View/Engine/Volt/Compiler.zep builds the join filter by inserting the raw separator and array token values into generated PHP without passing them through expression(). An attacker who can influence Volt template source can place quote-breaking content in a join argument, inject PHP into the compiled cache file, and execute it when Phalcon\Mvc\View\Engine\Volt::render() loads the template. This issue is fixed in version 5.16.0.

    • Mettez à jour vers 5.16.0
    Publication Mise à jour
  11. GHSA-hq84-x37p-j6q5

    Moyenne · CVSS 4.5Correctif disponible

    Winter: Reflected XSS through the search query parameter in the backend Table widget

    ### Impact Affected versions of Winter CMS render the `search` query parameter without HTML encoding inside a `<script type="text/template">` block in the backend Table widget partial (`modules/backend/widgets/table/partials/_table.php`): ```php value="<?= get('search') ?>" ``` `<script>` is an HTML raw-text context, so the surrounding `value="…"` attribute quoting is not a parser boundary. A literal `</script>` in the query string terminates the template element early, and everything after it is parsed as ordinary markup in the backend document. Any backend page rendering a Table or DataTable widget is a sink. The value is read from the

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  12. GHSA-p2ch-c2c3-4xm5

    Moyenne · CVSS 6.1Correctif disponible

    Winter: CSRF through AJAX handler names reachable as backend page actions

    ### Impact Affected versions of Winter CMS allow a backend AJAX handler to be invoked by a plain top-level `GET` navigation with no CSRF token. `Backend\Classes\Controller::actionExists()` accepted any public method on a controller as a page action, so handler-shaped names were never reserved from URL dispatch: an authenticated and authorized request to `/backend/system/eventlogs/index_onEmptyLog` reached the handler of the same name and truncated the system event log. Backend paths are routed through `Route::any`, and CSRF validation is skipped for `HEAD`, `GET` and `OPTIONS` requests. The default `SameSite=Lax` session cookie is sent on t

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  13. GHSA-5cwr-5jxg-pcf6

    Moyenne · CVSS 4.5Correctif disponible

    Winter: Stored XSS through cached Brand Settings and Editor Settings custom styles

    ### Impact Users with the `backend.manage_branding` ("Customize the back-end") or `backend.manage_editor` ("Manage global code editor preferences") permission can provide custom CSS through **Settings → Customize Backend → Styles** or **Settings → Editor Settings → Markup Styles** that is compiled through the LESS CSS parser and rendered on every backend page. v1.2.13 addressed CVE-2026-32257 and CVE-2026-32258 by applying `strip_tags()` to the compiled output of `BrandSetting::renderCss()` and `EditorSetting::renderCss()`. That fix was incomplete. Both methods cache the **raw** compiler output with `Cache::forever()` and applied `strip_tag

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  14. GHSA-fm29-4mq3-phg6

    Élevée · CVSS 8.3Correctif disponible

    Winter: ImportExportController AJAX handlers bypass granular import/export permission gate

    ### Impact Affected versions of Winter CMS did not enforce the `ImportExportController` behavior's granular access control on the handlers that actually perform the work. The behavior supports per-operation access control through the `import[permissions]` and `export[permissions]` configuration keys, enforced by `userHasAccess()`. That check was applied only to the `import()` and `export()` page actions. `Backend\Classes\Controller::execAjaxHandlers()` dispatches AJAX handlers and returns *before* `execPageAction()` runs, and the behavior binds its import and export form widgets in its constructor on every request to the controller. The ha

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  15. GHSA-mpmw-f6h6-3g26

    Moyenne · CVSS 4.3Correctif disponible

    Winter: My Account preview exposes another backend user's profile by record ID

    ### Impact `Backend\Controllers\MyAccount`, introduced in v1.2.13, declares an empty `$requiredPermissions` array so that any authenticated backend user can manage their own account. It implements the `FormController` behavior, which exposes three routable actions — `create`, `update` and `preview` — that each take a record id from the URL. `index()` passes the authenticated user's own id to the behavior, but the inherited actions were left routable and `formFindModelObject()` was not scoped, so a caller-supplied id resolved against an unscoped `Backend\Models\User` query: ``` GET /backend/backend/myaccount/preview/{other_user_id} ``` `pr

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  16. GHSA-7mpf-4465-7fc2

    Faible · CVSS 2Correctif disponible

    Winter: Stored XSS through Backend List widget image columns

    ### Impact `Backend\Widgets\Lists::evalImageTypeValue()` interpolated the resolved image URL into a single-quoted `src` attribute without escaping it. Where a list column of type [`image`](https://wintercms.com/docs/v1.2/docs/backend/lists#image) rendered an attacker-influenced value, that value could break out of the attribute and inject arbitrary attributes — including event handlers — into the backend list, executing in the session of whichever backend user viewed it. Winter core ships no `image` list column, so a default installation is unaffected. Exploitation requires a plugin that renders attacker-influenced values through one. The

    • Mettez à jour vers 1.2.14
    Publication Mise à jour
  17. CVE-2026-54491

    Élevée · CVSS 7.1EPSS 0,38%Correctif disponible

    Koel: Incomplete fix for CVE-2026-47260 — systemic SSRF in podcast & radio fetch paths

    Koel is a free, open-source music streaming solution. Prior to 9.7.1, outbound podcast and radio fetch paths perform a point-in-time App\Helpers\Network::isPublicHost() or isSafeUrl() check without pinning the validated address, and most paths lack redirect-hop validation and do not revalidate every redirect target. PhanAn\Poddle\Poddle::fromUrl(), PodcastService::getStreamableUrl(), PodcastService::isPodcastObsolete(), App\Rules\HasAudioContentType, and App\Rules\SafeUrl can therefore follow an attacker-controlled redirect to an internal address or connect after DNS rebinding changes a public resolution to a private one. These paths are reac

    • Mettez à jour vers 9.7.1
    Publication Mise à jour
  18. CVE-2026-54493

    Élevée · CVSS 7.7EPSS 0,41%Correctif disponible

    Koel: Authenticated Full-Read SSRF via Subsonic Internet Radio Stations

    Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createInternetRadioStation.view and updateInternetRadioStation.view routes accept an authenticated user's streamUrl without the SafeUrl and HasAudioContentType checks used by the regular radio API. app/Http/Requests/Subsonic/CreateInternetRadioStationRequest.php and app/Http/Requests/Subsonic/UpdateInternetRadioStationRequest.php pass the stored URL through app/Services/RadioService.php to app/Services/Radio/RadioStreamProxy.php, where RadioStreamProxy::openStream() calls fopen($url, 'r', false, $context). Streaming /radio/stream/{id} returns the ups

    • Mettez à jour vers 9.7.0
    Publication Mise à jour
  19. CVE-2026-54494

    Moyenne · CVSS 5.3EPSS 0,43%Correctif disponible

    Koel: Full-read SSRF via podcast enclosure URL: isPublicHost() filter_var guard does not reject NAT64 (64:ff9b::/96) or 6to4 (2002::/16) IPv6-transition wrappers of internal IPv4

    Koel is a free, open-source music streaming solution. Prior to 9.7.1, App\Helpers\Network::isPublicHost() uses filter_var() with FILTER_FLAG_NO_PRIV_RANGE and FILTER_FLAG_NO_RES_RANGE, which treats NAT64 64:ff9b::/96 and 6to4 2002::/16 wrappers of private, loopback, or link-local IPv4 addresses as public. An authenticated user can place such an address in a podcast RSS <enclosure url> and reach app/Values/Podcast/EpisodePlayable.php through EpisodePlayable::createForEpisode(), where isSafeUrl() accepts the target and Http::sink($file)->get($url) fetches it. On a host with NAT64 or 6to4 routing, Koel can request internal services or cloud meta

    • Mettez à jour vers 9.7.1
    Publication Mise à jour
  20. CVE-2026-54492

    Moyenne · CVSS 4.3EPSS 0,41%Correctif disponible

    Koel: Authenticated Blind SSRF via Subsonic Podcast Channel Creation

    Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createPodcastChannel.view route accepts an authenticated user's private URL because app/Http/Requests/Subsonic/CreatePodcastChannelRequest.php does not apply the SafeUrl validation used by the regular podcast API. app/Http/Controllers/Subsonic/CreatePodcastChannelController.php passes the URL to app/Services/Podcast/PodcastService.php, where PodcastService::addPodcast() and createParser() invoke Poddle::fromUrl() during channel creation, causing immediate server-side requests to loopback, Docker bridge, or RFC1918 HTTP destinations. The confirmed imp

    • Mettez à jour vers 9.7.0
    Publication Mise à jour

Vérifiez votre serveur

Comparez votre pile et les versions installées aux bases de vulnérabilités actuelles.

Vérifiez votre serveur →