
PoC autonome pour CVE-2026-90782 : déréférencement NULL par écrasement de statut dans S2OPC alloc_notification_message_items() (DataChange échoue, Event réussit)
Preuve de concept autonome pour CVE-2026-90782 dans S2OPC (Safe & Secure OPC).
Dans alloc_notification_message_items() (S2OPC 1.7.3 et versions antérieures) :
status partagée est utilisée à la fois pour les allocations DataChange et Event.status est écrasé par SOPC_STATUS_OK.dataChangeNotif toujours NULL → déréférencement de pointeur NULL / plantage.gcc -o s2opc_poc reproducer.c
# Test 1 — les deux allocations réussissent (pas de plantage)
./s2opc_poc 1
# Test 2 — chemin vulnérable : DataChange échoue, Event réussit → déréférencement NULL (plantage)
./s2opc_poc 2
# Test 3 — chemin corrigé : suivi de statut indépendant, pas de plantage
./s2opc_poc 3
# Test 4 — contrôle : data uniquement (pas d'allocation Event pour écraser le statut)
./s2opc_poc 4
Recommandé avec AddressSanitizer :
gcc -fsanitize=address -g -o s2opc_poc reproducer.c
./s2opc_poc 2
Suivre les statuts d'allocation indépendamment et sortir prématurément / ignorer le déréférencement lorsque l'allocation DataChange a échoué. Reproduit le modèle du commit 8848f051.
reproducer.c — reproduit la logique d'allocation vulnérable et corrigée