SchwachstellendatenbankGHSA-xccm-c64j-hf7g

GHSA-xccm-c64j-hf7g: 
Python Schwachstellenanalyse und -minderung

Impact

dratify.check_proof exists to answer one question: is this proof of unsatisfiability genuine? Before 0.1.11, both checkers could answer yes for a formula that is satisfiable. It takes default flags and an ordinary text proof, on both the pure-Python checker and the Rust crate.

from dratify import parse_dimacs, check_proof
f = parse_dimacs("p cnf 2 2\n1 0\n-1 2 0\n")
check_proof(f, "d -1 2 0\n-2 0\n0\n").ok   # True before 0.1.11

Making variables 1 and 2 true satisfies this formula, and no step of the proof is valid. A checker that keeps the deleted clause rejects -2 0; drat-trim and rate also refuse the proof. The cause: deleting a clause removed it from the clause store and left the root assignment alone. (-1 2) was the reason 2 was true. After the deletion, 2 stayed true while nothing supported it. (-2) then passed as vacuously RAT, because no live clause contained 2. It was false at the root, which registered a conflict, and everything after a conflict passes. You are affected if you rely on ok=True from a proof you did not produce yourself: one from an untrusted party, or from a solver whose correctness is what you are checking. Not affected:

  • Calls with apply_deletions=False or with check_rat=False. With either, every root literal stays entailed by the input and earlier lemmas.
  • The verdict on a formula that really is unsatisfiable.
  • Valid proofs: this defect only ever accepted too much. Proofs from CaDiCaL and kissat verify under the fix in every case tried. Earlier results are not all suspect, but a certificate accepted from an untrusted source by an affected version should be checked again.

Patches

Fixed in dratify 0.1.11, on PyPI and crates.io, and in cdclkit-native 0.2.1, which embeds the crate. A plain cdclkit install takes the fix by upgrading dratify. A deletion is now ignored when the clause, as a set, has exactly one literal true and all the others false at the root. Every reason clause has that shape, so every root literal keeps a live clause behind it. Ignoring a deletion is always sound, because it only leaves more clauses to satisfy. This follows drat-trim's operational reading of deletion (Rebola-Pardo and Biere, 2018), approximated by the root-unit test. A proof that relies on a reason clause being gone is now rejected or checked against more clauses. drat-trim and specified-DRAT checkers can differ on such proofs; the README describes the reading used here.

Workarounds

Upgrade. Otherwise, pass apply_deletions=False. It may reject a valid proof whose RAT steps depend on a deletion, but it fails closed. check_rat=False also closes this and rejects every RAT step.

References


Quelle: NVD

Verwandte Themen Python Schwachstellen:

CVE-ID

Schwere

Punktzahl

Technologieen

Bauteilname

CISA KEV-Exploit

Hat Lösung

Veröffentlichungsdatum

GHSA-8g49-pg6g-xgrfMEDIUM4.7
  • Python logoPython
  • headroom-ai
NeinJaNov 09, 2026
GHSA-xccm-c64j-hf7gCRITICALN/A
  • Python logoPython
  • dratify
NeinJaNov 09, 2026
GHSA-v562-gjx2-cg8pMEDIUMN/A
  • Python logoPython
  • dratify
NeinJaNov 09, 2026
GHSA-2j4v-jw9r-f4gwHIGHN/A
  • Python logoPython
  • dratify
NeinJaNov 09, 2026
GHSA-frwq-4xqx-frmcHIGHN/A
  • Python logoPython
  • atlaso
NeinJaNov 09, 2026

Kostenlose Verwundbarkeitsbewertung

Benchmark für Ihre Cloud-Sicherheitslage

Bewerten Sie Ihre Cloudsicherheitspraktiken in 9 Sicherheitsbereichen, um Ihr Risikoniveau zu bewerten und Schwachstellen in Ihren Verteidigungen zu identifizieren.

Anforderungsbewertung

Zusätzliche Wiz-Ressourcen

Eine personalisierte Demo anfordern

Sind Sie bereit, Wiz in Aktion zu sehen?

"Die beste Benutzererfahrung, die ich je gesehen habe, bietet vollständige Transparenz für Cloud-Workloads."
David EstlickCISO
"„Wiz bietet eine zentrale Oberfläche, um zu sehen, was in unseren Cloud-Umgebungen vor sich geht.“ "
Adam FletcherSicherheitsbeauftragter
"„Wir wissen, dass, wenn Wiz etwas als kritisch identifiziert, es auch wirklich kritisch ist.“"
Greg PoniatowskiLeiter Bedrohungs- und Schwachstellenmanagement