Web Application
CVE-2026-72695 high CVSS 8.1

Traversée de chemin dans getgrav/grav (CVE-2026-72695)

Résumé

Traversée de chemin dans getgrav/grav (CVE-2026-72695). Les données peuvent être altérées par des attaquants. Exploitable via POST /admin/pages/mypage/task. Atténuation : mise à jour vers 2.0.16 ou plus.

Description d'origine

La description telle que publiée par la source (souvent en anglais).

Path Traversal in MediaUploadTrait::deleteFile() Allows Arbitrary File Deletion

Summary

A path traversal vulnerability in MediaUploadTrait::deleteFile() allows an authenticated user with media management permissions to delete arbitrary files on the server. The method validates only the basename portion of the filename using Utils::checkFilename(), while the directory path (which may contain ../ sequences) is preserved and passed unvalidated to unlink(). This enables directory escape from the intended media storage path.

Severity

High (8.1) - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

CWE

CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Details

In system/src/Grav/Common/Media/Traits/MediaUploadTrait.php, the deleteFile() method (lines 332-365) performs filename validation only on the basename, not the full path:

public function deleteFile(string $filename, ?array $settings = null): void
{
    $settings = $this->getUploadSettings($settings);
    $filesystem = Filesystem::getInstance(false);

    // Line 339-340: Only the BASENAME is validated
    $basename = $filesystem->basename($filename);  // e.g. "evil.jpg" from "../../evil.jpg"
    if (!Utils::checkFilename($basename)) {         // passes - no traversal in basename
        throw new RuntimeException(/* ... */);
    }

    $path = $settings['destination'] ?? $this->getPath();
    // ...

    // Line 353: Full pathname (with traversal) is p…

Source: NIST National Vulnerability Database NVD GitHub Advisory

Résumé IA

Rédigé par une IA externe ; il peut contenir des erreurs. Vérifiez la description d'origine et les références ci-dessous avant d'agir.

Une vulnérabilité référencée CVE-2026-72695 a été découverte dans path-traversal.
Des attaquants peuvent cibler un point d'entrée spécifique comme POST /admin/pages/mypage/task à distance pour détourner le produit.
Les données peuvent être altérées par des attaquants. Score CVSS : 8.1/10.
Action : appliquez le correctif officiel de l'éditeur.
En cas de doute, contactez votre service informatique ou cherchez « path-traversal CVE-2026-72695 » sur le site de l'éditeur.

CVE-2026-72695 (path-traversal) — CWE-22 / CVSS v3 8.1
Vecteur d'attaque : distant (réseau) / sans interaction utilisateur
Surface d'attaque : POST /admin/pages/mypage/task / MediaUploadInterface / target.txt
Versions affectées : <= 2.0.15
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.

❓ Quel est le problème

GravのMediaUploadTrait::deleteFile()にパストラバーサルの脆弱性が存在。

📍 Périmètre concerné

Grav 2.0.16未満で、MediaUploadTrait::deleteFile()に影響。

🔥 Gravité

媒体管理権限を持つ認証ユーザーが任意のファイルを削除できる重大な問題。

🔧 Comment corriger

Gravをバージョン2.0.16以降にアップデートする。

🛡️ Contournement

情報なし

🔍 Détection

該当バージョンを使用している場合は影響を受ける可能性がある。

Paquets affectés

composer getgrav/grav
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.16"}]}]

Références

Nous utilisons des cookies pour l'analyse d'audience et la mesure publicitaire. Ce réglage s'applique à tous les sites de Game co., Ltd. En savoir plus