davenardella snap7 bis 1.4.3 ReadVar Request src/core/s7_server.cpp PerformFunctionRead Pufferüberlauf
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 6.0 | $0-$5k | 0.00 |
Zusammenfassung
Es wurde eine Schwachstelle mit der Einstufung kritisch in davenardella snap7 bis 1.4.3 gefunden. Betroffen hiervon ist die Funktion TS7Worker::PerformFunctionRead der Datei src/core/s7_server.cpp der Komponente ReadVar Request Handler. Die Manipulation führt zu Pufferüberlauf.
Diese Sicherheitslücke ist unter CVE-2026-15105 bekannt. Der Angriff kann im lokalen Netzwerk angegangen werden. Darüber hinaus steht ein Exploit zur Verfügung.
Details
Eine kritische Schwachstelle wurde in davenardella snap7 bis 1.4.3 ausgemacht. Es geht hierbei um die Funktion TS7Worker::PerformFunctionRead der Datei src/core/s7_server.cpp der Komponente ReadVar Request Handler. Durch das Beeinflussen mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-787. Dies wirkt sich aus auf Vertraulichkeit, Integrität und Verfügbarkeit.
Die Schwachstelle wurde durch Chuan Wei (CarnegieMe) als 16 in Form eines nicht definierten Issues (GitHub) veröffentlicht. Auf github.com kann das Advisory eingesehen werden. Die Herausgabe geschah hierbei ohne Zusammenarbeit mit dem Hersteller. Die Identifikation der Schwachstelle findet als CVE-2026-15105 statt. Sie ist leicht auszunutzen. Der Angriff kann im lokalen Netzwerk passieren. Das Ausnutzen erfordert keine spezifische Authentisierung. Es sind sowohl technische Details als auch ein öffentlicher Exploit zur Schwachstelle bekannt.
Ein öffentlicher Exploit wurde durch Chuan Wei (CarnegieMe) in Python geschrieben. Der Download des Exploits kann von github.com geschehen. Er wird als proof-of-concept gehandelt. Für den Vulnerability Scanner Nessus wurde ein Plugin mit der ID 326078 (Linux Distros Unpatched Vulnerability : CVE-2026-15105) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann.
Es sind keine Informationen bezüglich Gegenmassnahmen bekannt. Der Einsatz eines alternativen Produkts bietet sich im Zweifelsfall an.
Unter anderem wird der Fehler auch in den Datenbanken von Tenable (326078) und EUVD (EUVD-2026-42468) dokumentiert. If you want to get best quality of vulnerability data, you may have to visit VulDB.
Produkt
Hersteller
Name
Version
Webseite
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CNA CVSS-B Score: 🔒
CNA CVSS-BT Score: 🔒
CNA Vector: 🔒
CVSSv3
VulDB Meta Base Score: 6.3VulDB Meta Temp Score: 6.0
VulDB Base Score: 6.3
VulDB Temp Score: 5.7
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CNA Base Score: 6.3
CNA Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: PufferüberlaufCWE: CWE-787 / CWE-119
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Nein
Lokal: Nein
Remote: Teilweise
Verfügbarkeit: 🔒
Zugang: öffentlich
Status: Proof-of-Concept
Autor: Chuan Wei (CarnegieMe)
Programmiersprache: 🔒
Download: 🔒
EPSS Score: 🔒
EPSS Percentile: 🔒
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Nessus ID: 326078
Nessus Name: Linux Distros Unpatched Vulnerability : CVE-2026-15105
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: keine Massnahme bekanntStatus: 🔍
0-Day Time: 🔒
Timeline
08.07.2026 Advisory veröffentlicht08.07.2026 VulDB Eintrag erstellt
02.08.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Produkt: github.comAdvisory: 16
Person: Chuan Wei (CarnegieMe)
Status: Nicht definiert
CVE: CVE-2026-15105 (🔒)
GCVE (CVE): GCVE-0-2026-15105
GCVE (VulDB): GCVE-100-376946
EUVD: 🔒
scip Labs: https://www.scip.ch/?labs.20161013
Eintrag
Erstellt: 08.07.2026 19:12Aktualisierung: 02.08.2026 00:23
Anpassungen: 08.07.2026 19:12 (58), 09.07.2026 05:30 (11), 10.07.2026 15:12 (2), 01.08.2026 17:00 (2), 01.08.2026 20:16 (1), 02.08.2026 00:23 (31)
Komplett: 🔍
Einsender: VULL
Editor: VULL
Cache ID: 216::103
Submit
Akzeptiert
- Submit #851026: Davide Nardella Snap7 master(commit:30f37da3114024a71ba93f7fd855c680b97a406f) Stack-based Buffer Overflow (von VULL)
If you want to get best quality of vulnerability data, you may have to visit VulDB.
The entry classifies this as deserialization (CWE-502), and the summary reads "the manipulation with an unknown input leads to a deserialization vulnerability". Nothing on this path deserializes anything. The defect is a failed bounds check caused by an unsigned comparison.
In TS7Worker::ReadArea (src/core/s7_server.cpp) the guard is:
if (PDURemainder-Size<=0)
return RA_SizeOverPDU(ResItemData, EV);
else
PDURemainder-=Size;
Size is declared longword, which is uint32_t (snap_platform.h:119), while PDURemainder is int. In PDURemainder-Size the usual arithmetic conversions promote PDURemainder to unsigned, so the expression can never be <= 0 except on exact equality, and the per-PDU bound never fires.
Instrumenting PerformFunctionRead at FPDULength 480 with 20 items of 201 bytes shows PDURemainder running 279, 78, -123, -324 and on to -3339 while every item is still accepted, and Offset climbing to 3916. The overflow is the response assembly walking past the end of the stack-allocated TS7Answer23 Answer buffer.
So the accurate classification is an out-of-bounds write arising from an integer conversion defect, CWE-787 with CWE-191 as the root, rather than CWE-502. Worth noting that the accepted submit behind this entry is itself titled "Stack-based Buffer Overflow", so the record is already inconsistent with its own source.
Upstream issue 16 attributes the cause to an accounting mismatch between ReadArea and PerformFunctionRead, where the first charges PDURemainder only the raw data length while the second advances Offset by data plus a 4 byte per-item header plus padding. That mismatch is real but accounts for roughly 100 bytes across 20 items, which is not enough to leave the buffer on its own. The signedness defect is what removes the bound entirely.