
Standalone-PoC für CVE-2026-90782: Status-Clobbering-NULL-Dereferenzierung in S2OPC alloc_notification_message_items() (DataChange schlägt fehl, Event erfolgreich)
Eigenständiger Proof-of-Concept für CVE-2026-90782 in S2OPC (Safe & Secure OPC).
In alloc_notification_message_items() (S2OPC 1.7.3 und früher):
status-Variable wird sowohl für DataChange- als auch für Event-Allokationen verwendet.status auf SOPC_STATUS_OK überschrieben.dataChangeNotif → NULL-Dereferenzierung / Absturz.gcc -o s2opc_poc reproducer.c
# Test 1 — beide Allokationen erfolgreich (kein Absturz)
./s2opc_poc 1
# Test 2 — anfälliger Pfad: DataChange schlägt fehl, Event erfolgreich → NULL-Deref (Absturz)
./s2opc_poc 2
# Test 3 — korrigierter Pfad: unabhängige Statusverfolgung, kein Absturz
./s2opc_poc 3
# Test 4 — Kontrolle: nur Daten (keine Event-Allokation, die status überschreiben könnte)
./s2opc_poc 4
Empfohlen mit AddressSanitizer:
gcc -fsanitize=address -g -o s2opc_poc reproducer.c
./s2opc_poc 2
Allokationsstatus unabhängig verfolgen und bei fehlgeschlagener DataChange-Allokation frühzeitig beenden / die Dereferenzierung überspringen. Entspricht dem Muster in Commit 8848f051.
reproducer.c — bildet die anfällige und die korrigierte Allokationslogik ab