Strona główna / Blog / Redis: provenance CVSS 9.8 vs 7.5

Blog · analiza

Redis CVE-2026-81934: publiczny rekord mówił 9.8 Critical i unauthenticated, vendor mówi authenticated. Kiedy CVSS staje się problemem provenance

CVE-2026-81934 dobrze pokazuje, dlaczego VE nie powinien traktować liczby CVSS jak jednej obiektywnej prawdy. Publiczny rekord początkowo opisywał podatność Redis jako Critical 9.8 i sugerował prosty scenariusz zdalnego ataku. Redis, po własnej analizie (28.08.2026), zakwestionował ten obraz: atak wymaga uwierzytelnionego użytkownika, szerokich uprawnień, skoordynowanych sesji TLS, precyzyjnych warunków runtime i target-specific adaptation — ocenił problem jako High 7.5 (CVSS v4.0). 1 września publiczny rekord zrewidowano do 7.5.

CVE-2026-81934: use-after-free w tlsProcessPendingData() (obsługa pending data przy włączonym TLS); przy określonych warunkach authenticated attacker może potencjalnie doprowadzić do RCE.
Konflikt: publiczny 9.8/unauth → vendor 7.5/authenticated (AC:H/AT:P) → publiczny rekord zrewidowany do 7.5.

To nie akademicki spór o 2,3 punktu — w realnym VM ta różnica zmienia SLA, eskalację i kolejkę patchowania. Słowo authenticated zasadniczo zmienia model względem „internet → port Redis → unauth RCE”.

To nie jest argument za ignorowaniem CVE

UAF z potencjalnym RCE pozostaje poważny. „Vendor mówi High” nie znaczy „nie trzeba patchować”. Prawidłowe pytanie: jaki jest realny exploit path w naszym środowisku? Rozdziel severity (skutek techniczny), exploitability (czy atakujący osiągnie warunki), exposure (czy Redis dostępny dla nieufnych klientów), privilege context (ACL użytkownika), runtime configuration (czy TLS włączony) i active exploitation (Redis: brak znanej na 27.08).

Jak powstał konflikt danych

W publicznych ekosystemach wiele źródeł (CNA, NVD, vendor, GHSA, dystrybucje, feedy komercyjne) przechowuje własne metryki. Reguła „bierz najwyższy CVSS” ukryje konflikt — dashboard pokaże jedną liczbę, a analityk nie zobaczy, że dwa źródła nie zgadzają się co do preconditions. Lepszy model danych:

score + vector + source + timestamp + rationale Source A: 9.8, prostsze założenia Redis: 7.5, authenticated, AC:H/AT:P, szczegółowe preconditions public: 7.5 po review

To pozwala nie tylko policzyć priorytet, ale odtworzyć, dlaczego priorytet się zmienił.

Co zrobić po korekcie CVSS

Nie zamykaj ani nie depriorytetyzuj automatycznie tylko dlatego, że score spadł. Oceń ponownie: czy Redis używa TLS, czy podatna wersja jest uruchomiona, jakie konta mogą się uwierzytelnić i z jakim ACL, czy Redis jest dostępny z segmentów o niższym zaufaniu, czy jest internet-facing (co samo w sobie kłóci się z zaleceniem vendora). Dopiero wtedy zmieniaj SLA.

Remediation i VEX gdy TLS wyłączony

Fixed OSS releases m.in.: 8.10.1, 8.8.2, 8.6.6, 8.4.6, 8.2.9, 7.4.11, 7.2.16, 6.2.24 (plus Redis Software/Cloud). Controls uzupełniające (least-privilege ACL, ograniczenie dostępu sieciowego, usunięcie zbędnych uprawnień, niewystawianie do Internetu) to risk-reduction, nie zamiennik fixa. Ponieważ vulnerable code path dotyczy TLS pending-data, przy Redis bez TLS można rozważyć status Not exploitable — vulnerable TLS code path not enabled — ale oparty na dowodzie konfiguracji i z automatyczną rewalidacją, gdy TLS się zmieni. Weryfikacja: runtime version, dowód restartu/reloadu, w kontenerach — image digest i running pods.

Wniosek

Najciekawsze w CVE-2026-81934 nie jest „Redis ma RCE”, lecz to, że publiczna interpretacja podatności zmieniła się po vendor review, a z nią warunki exploitability i CVSS. VE przechowuje CVE → source → vector → rationale → timestamp → local context — wtedy 9.8 → 7.5 to nie korekta liczby, lecz zmiana modelu zagrożenia oparta na lepszej wiedzy.

Powiązane na blogu

Źródła

Nota redakcyjna: stan informacji 6 września 2026. CVE-2026-81934 (Redis, UAF w tlsProcessPendingData): publiczny rekord 9.8/unauth zrewidowano do 7.5 High po vendor review (authenticated + szerokie ACL + skoordynowane sesje TLS). Artykuł koncentruje się na provenance CVSS i lokalnym modelu exploitability.

Zapamiętaj jedno

Prawdziwy VE przechowuje nie „CVE → score”, lecz „CVE → source → vector → rationale → timestamp → local context”. Bez tego zmiana 9.8 → 7.5 wygląda jak arbitralna korekta liczby; z pełnym provenance staje się tym, czym jest: zmianą modelu zagrożenia opartą na lepszej wiedzy technicznej.