GCVE-1988-2026-0506
Vulnerability from gna-1988 – Published: 2026-11-02 07:30 – Updated: 2026-11-02 07:30
VLAI
EPSS
VEX
Title
[0day-rubbish] Raritan PX3 PDU G4 firmware 4.3.14 command injection in the ping and traceroute diagnostics through an inverted hostname-validation return check (8.8)
Summary
0day Rubbish Research Team is publicly disclosing a vulnerability in the
Raritan PX3 PDU G4, firmware version 4.3.14, the intelligent rack power
distribution unit from Raritan, a Legrand company (United States). A
low-privilege authenticated session converts one diagnostics request into
operating-system command execution in the product's web-service context,
because the hostname validation that is supposed to gate the ping and
traceroute commands produces the correct rejection verdict and the caller then
executes on it anyway.
Type and root cause. CWE-78, OS command injection, with CWE-20 co-equal,
in the diagnostics service of /lib/libisys.so.1.0. The firmware is an aarch64
embedded Linux image whose web tier is a custom 1.8 MB C++ daemon, /bin/httpd,
built on an IDL-RPC framework: an authentication subsystem the binary refers
to as pp::aaa, a JSON-RPC name service, and seventy-five service namespaces,
all behind per-method authentication. The two diagnostics implementations,
isys::net::diag::ping at 0x5a988 and isys::net::diag::traceRoute at 0x5ab64,
do not perform network operations themselves: they assemble shell command
strings from the operator-supplied hostname and execute them through /bin/sh,
via pp::BackgroundCommand::open(bgCmd, "/bin/sh", argv) at 0x36170, reached
through runShellCommandAndGetResults() at 0x36094, which logs the command it
is about to run. The templates are ping -c <count> -W <timeout> <HOST> 2>&1
and traceroute -w <timeout> -m 30 <HOST> 2>&1, with ping6 and traceroute6
variants; the neighbouring string table carries "ping", "ping6", "traceroute",
"traceroute6", "2>&1" and the source file name "DiagnosticsImpl.cpp".
The defect is a returned verdict consumed with the wrong comparison. The
validation function, validateAndResolveHostName() at 0x5a3f4, is not a stub:
it walks the hostname character by character, explicitly rejects the percent
sign and every character above the ASCII colon, cross-checks that the host
resolves through the resolver service, and returns one constant, three, on
every rejection path - the rejection block converges at the load of that
constant and returns at 0x5a54c. Both consumers evaluate the verdict with an
unsigned strictly-greater branch: a return of three is not strictly greater
than three, so it falls through, and the rejected hostname is spliced into the
shell template verbatim. The result is an injection whose success condition is
the validator working exactly as designed: a semicolon is caught by the
character loop, a dollar or parenthesis survives the loop but fails
resolution, and all of them - caught or unresolved - flow into the command
template. A host value of 1.1.1.1;id>/tmp/marker;# keeps the ping segment
syntactically complete, runs the injected statement as a second shell
statement, and the trailing hash comments out the template's 2>&1 suffix; the
subshell form and a newline-separated form ride the same rejection path; the
traceroute template arms the second entry point identically. The image
contains a strict fully-qualified-hostname validator in libnetwork.so, but
the web daemon does not import it and the diagnostics library neither links
nor loads it on this code path.
The request that reaches the sink looks like this, transmitted as one JSON
body over the authenticated RPC channel:
```
{
"jsonrpc": "2.0",
"method": "net.Diagnostics.ping",
"params": {
"host": "1.1.1.1;id>/tmp/marker;#",
"count": 1,
"timeout": 1
},
"id": 2
}
```
The same attacker string rides the hostname argument of the corresponding CLI
commands. The 2>&1 merge suffix is an amplifier the attacker inherits for
free: whatever the injected command prints on either stream is captured by the
same mechanism that returns ping output, so the response channel doubles as
the command-output channel and no out-of-band exfiltration is needed.
Reach and privileges. The web methods sit behind the framework's per-method
authentication and no bypass of that boundary was measured. The load-bearing
privilege artifact is the shipped CLI configuration, /etc/clish/netdiag.xml:
ping and traceroute are defined with no access attribute - available to every
authenticated CLI user in this framework's grammar - while the neighbouring
netstat command carries access="admin". The vendor's own artifact therefore
documents that these two functions were deliberately placed in the
all-authenticated-users class, presumably on the theory that a ping is
harmless. On a rack PDU, management is a network service at a datacenter's
softest point, and the finding's effective audience is every monitoring
account, operations automation role and integration credential granted "just
to poll".
Severity. The published score is 8.8 High,
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H: ISS = 1 - (1 - 0.56) x (1 -
0.56) x (1 - 0.56) = 0.914816, impact = 6.42 x 0.914816 = 5.869119,
exploitability = 8.22 x 0.85 x 0.77 x 0.62 x 0.85 = 2.835255, base =
5.869119 + 2.835255 = 8.704374, rounded up to 8.8. A PR:N reading of 9.8
Critical (impact 5.869119 plus exploitability 3.887043, total 9.756162) is
rejected: no authentication bypass was measured. Two conditional readings are
published as explicitly labelled conditionals and never as the headline. The
first applies where a deployment still carries the factory default
administrative credential pair recorded in the image's configuration default
area for first-boot access: the same PR:N vector computes to 9.8 Critical for
the chain of that adjacent weakness plus this injection, and a changed
credential removes it; the default pair is disclosed as a separate weakness
and is not folded into the published vector. The second applies only to
deployments in which no low-privilege account is provisioned and every caller
holds administrator privileges: the PR:H vector computes to 7.2 High
(exploitability 1.234708 plus 5.869119, total 7.103826), and it is not the
headline because the vendor's own shipped CLI artifact grants diagnostics to
all authenticated users.
Verification method, and its boundary. Every static claim is measured from the
firmware image at instruction level: the templates, the character loop, the
converging rejection blocks, the consumers' compare-and-branch sequences, the
shell open, and the two import facts. The dynamic layer is a command-level
replication of the recovered sink semantics on an isolated research host: the
exact reconstructed templates were executed through a shell under the
semicolon, subshell and traceroute injection shapes, and each produced the
marker command's output, while a metacharacter-free control produced nothing
and the marker path was confirmed absent afterwards. What was not done: no
end-to-end exploitation through the management interface of a physical unit.
No physical unit was available, and full-system emulation was blocked by the
management daemon's dependency on the configuration daemon and the flash
storage layer, which an image-only extraction does not provide. Appliance-side
execution identity was therefore not measured at runtime and is not claimed;
the replication's shell ran under the research host's privileged account,
which is a property of the research environment, and the published claims are
written against the web service's account, whichever that is.
Impact. One authenticated request converts into command execution in the
process context of the web management daemon, with command output returned
through the same response channel. The service's read reach includes the
product's configuration and state stores, so configuration data, recorded
credentials and network information can be exfiltrated in the same channel
that ping output arrives in. Both methods accept repeated calls with fresh
hostnames, so staging, reading results and cleanup are one request each, and
no persistence inside the product is needed. On a power distribution product,
availability is the physical machine state: the injected command executes in
the daemon that hosts the outlet control surface, so the ability to cycle
outlet power, and thereby hard-stop, every machine fed by the unit, follows
from the product's own function. That consequence is a labelled inference.
sink level was measured. Detection is poor by construction: the triggering
request is a legitimate diagnostics call that the product logs as the
assembled shell command, and the strongest available signal is shell-command
log review for the two templates.
Remediation, in the order that removes the class: perform ping and traceroute
without a shell, through their library or raw-socket interfaces or an
argv-array spawn, which removes the CWE-78 class from this handler entirely;
correct the verdict consumption - accept only the documented success returns
and reject everything else - as a one-line containment that can ship
immediately; centralize hostname admission for both entry channels on a
literal-or-strict-name allow-list that runs before any command text is
assembled, using the strict validator already present in the image; audit
every other consumer of the shared validation function for the same
strictly-greater consumption of the rejection constant; remove the factory
default credential and force a first-login change, which closes the
conditional unauthenticated chain; add injection regression suites for both
channels covering the full character-class table; and make the shell-template
log line an alertable event. Operator measures until firmware is fixed: change
the factory default immediately, restrict management access to the operations
network, prefer monitoring roles that need no diagnostics, and alert on
diagnostics shell lines whose host segment is not a literal address or strict
name.
Proof of concept. The published tool is a standard-library-only Python 3
client that drives the entry path against an explicit target with explicit
credentials or a pre-established session token, a configurable command and
explicit timeouts; it attempts the two candidate session-establishment routes
observed in this framework generation's front ends and degrades to a supplied
token, and it embeds no addresses, credentials or state of the verification
environment. Safety rails: loopback default, no persistence steps, one
non-destructive marker command by default, and no configuration change beyond
what the described request performs. Use it only against systems you own or
are authorised to test.
The vendor's parent company product security team, whose signed RFC 9116
contact file on the parent's primary web host names the intake mailbox used,
was notified through that documented security mailbox, which is the only
channel used; no security intake of the router brand itself exists, no
pre-publication intake form was submitted, and no individual was addressed by
name. This disclosure is unconditional: the research is published, no
permission was asked for, no embargo was requested, nothing is withheld
pending a reply, and remediation questions are answered at no cost. No
vulnerability identifier has been assigned to this finding.
Full technical analysis and the reproducible proof of concept, published
unconditionally:
https://0day-rubbish.com/blog/raritan-px3-pdu-g4-diag-ping-traceroute-command-injection
Project archive (ongoing disclosure series):
https://github.com/Exploit-Garbage/0day-Rubbish
--
0day Rubbish Research Team
disclosure () 0day-rubbish com
https://0day-rubbish.com
_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: https://seclists.org/fulldisclosure/
Severity
No CVSS data available.
Assigner
References
7 references
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"product": "PX3 PDU",
"vendor": "Raritan",
"versions": [
{
"status": "affected",
"version": "unknown"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "disclosure via Fulldisclosure"
}
],
"descriptions": [
{
"lang": "en",
"value": "0day Rubbish Research Team is publicly disclosing a vulnerability in the\nRaritan PX3 PDU G4, firmware version 4.3.14, the intelligent rack power\ndistribution unit from Raritan, a Legrand company (United States). A\nlow-privilege authenticated session converts one diagnostics request into\noperating-system command execution in the product\u0027s web-service context,\nbecause the hostname validation that is supposed to gate the ping and\ntraceroute commands produces the correct rejection verdict and the caller then\nexecutes on it anyway.\n\nType and root cause. CWE-78, OS command injection, with CWE-20 co-equal,\nin the diagnostics service of /lib/libisys.so.1.0. The firmware is an aarch64\nembedded Linux image whose web tier is a custom 1.8 MB C++ daemon, /bin/httpd,\nbuilt on an IDL-RPC framework: an authentication subsystem the binary refers\nto as pp::aaa, a JSON-RPC name service, and seventy-five service namespaces,\nall behind per-method authentication. The two diagnostics implementations,\nisys::net::diag::ping at 0x5a988 and isys::net::diag::traceRoute at 0x5ab64,\ndo not perform network operations themselves: they assemble shell command\nstrings from the operator-supplied hostname and execute them through /bin/sh,\nvia pp::BackgroundCommand::open(bgCmd, \"/bin/sh\", argv) at 0x36170, reached\nthrough runShellCommandAndGetResults() at 0x36094, which logs the command it\nis about to run. The templates are ping -c \u003ccount\u003e -W \u003ctimeout\u003e \u003cHOST\u003e 2\u003e\u00261\nand traceroute -w \u003ctimeout\u003e -m 30 \u003cHOST\u003e 2\u003e\u00261, with ping6 and traceroute6\nvariants; the neighbouring string table carries \"ping\", \"ping6\", \"traceroute\",\n\"traceroute6\", \"2\u003e\u00261\" and the source file name \"DiagnosticsImpl.cpp\".\n\nThe defect is a returned verdict consumed with the wrong comparison. The\nvalidation function, validateAndResolveHostName() at 0x5a3f4, is not a stub:\nit walks the hostname character by character, explicitly rejects the percent\nsign and every character above the ASCII colon, cross-checks that the host\nresolves through the resolver service, and returns one constant, three, on\nevery rejection path - the rejection block converges at the load of that\nconstant and returns at 0x5a54c. Both consumers evaluate the verdict with an\nunsigned strictly-greater branch: a return of three is not strictly greater\nthan three, so it falls through, and the rejected hostname is spliced into the\nshell template verbatim. The result is an injection whose success condition is\nthe validator working exactly as designed: a semicolon is caught by the\ncharacter loop, a dollar or parenthesis survives the loop but fails\nresolution, and all of them - caught or unresolved - flow into the command\ntemplate. A host value of 1.1.1.1;id\u003e/tmp/marker;# keeps the ping segment\nsyntactically complete, runs the injected statement as a second shell\nstatement, and the trailing hash comments out the template\u0027s 2\u003e\u00261 suffix; the\nsubshell form and a newline-separated form ride the same rejection path; the\ntraceroute template arms the second entry point identically. The image\ncontains a strict fully-qualified-hostname validator in libnetwork.so, but\nthe web daemon does not import it and the diagnostics library neither links\nnor loads it on this code path.\n\nThe request that reaches the sink looks like this, transmitted as one JSON\nbody over the authenticated RPC channel:\n\n```\n{\n \"jsonrpc\": \"2.0\",\n \"method\": \"net.Diagnostics.ping\",\n \"params\": {\n \"host\": \"1.1.1.1;id\u003e/tmp/marker;#\",\n \"count\": 1,\n \"timeout\": 1\n },\n \"id\": 2\n}\n```\n\nThe same attacker string rides the hostname argument of the corresponding CLI\ncommands. The 2\u003e\u00261 merge suffix is an amplifier the attacker inherits for\nfree: whatever the injected command prints on either stream is captured by the\nsame mechanism that returns ping output, so the response channel doubles as\nthe command-output channel and no out-of-band exfiltration is needed.\n\nReach and privileges. The web methods sit behind the framework\u0027s per-method\nauthentication and no bypass of that boundary was measured. The load-bearing\nprivilege artifact is the shipped CLI configuration, /etc/clish/netdiag.xml:\nping and traceroute are defined with no access attribute - available to every\nauthenticated CLI user in this framework\u0027s grammar - while the neighbouring\nnetstat command carries access=\"admin\". The vendor\u0027s own artifact therefore\ndocuments that these two functions were deliberately placed in the\nall-authenticated-users class, presumably on the theory that a ping is\nharmless. On a rack PDU, management is a network service at a datacenter\u0027s\nsoftest point, and the finding\u0027s effective audience is every monitoring\naccount, operations automation role and integration credential granted \"just\nto poll\".\n\nSeverity. The published score is 8.8 High,\nCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H: ISS = 1 - (1 - 0.56) x (1 -\n0.56) x (1 - 0.56) = 0.914816, impact = 6.42 x 0.914816 = 5.869119,\nexploitability = 8.22 x 0.85 x 0.77 x 0.62 x 0.85 = 2.835255, base =\n5.869119 + 2.835255 = 8.704374, rounded up to 8.8. A PR:N reading of 9.8\nCritical (impact 5.869119 plus exploitability 3.887043, total 9.756162) is\nrejected: no authentication bypass was measured. Two conditional readings are\npublished as explicitly labelled conditionals and never as the headline. The\nfirst applies where a deployment still carries the factory default\nadministrative credential pair recorded in the image\u0027s configuration default\narea for first-boot access: the same PR:N vector computes to 9.8 Critical for\nthe chain of that adjacent weakness plus this injection, and a changed\ncredential removes it; the default pair is disclosed as a separate weakness\nand is not folded into the published vector. The second applies only to\ndeployments in which no low-privilege account is provisioned and every caller\nholds administrator privileges: the PR:H vector computes to 7.2 High\n(exploitability 1.234708 plus 5.869119, total 7.103826), and it is not the\nheadline because the vendor\u0027s own shipped CLI artifact grants diagnostics to\nall authenticated users.\n\nVerification method, and its boundary. Every static claim is measured from the\nfirmware image at instruction level: the templates, the character loop, the\nconverging rejection blocks, the consumers\u0027 compare-and-branch sequences, the\nshell open, and the two import facts. The dynamic layer is a command-level\nreplication of the recovered sink semantics on an isolated research host: the\nexact reconstructed templates were executed through a shell under the\nsemicolon, subshell and traceroute injection shapes, and each produced the\nmarker command\u0027s output, while a metacharacter-free control produced nothing\nand the marker path was confirmed absent afterwards. What was not done: no\nend-to-end exploitation through the management interface of a physical unit.\nNo physical unit was available, and full-system emulation was blocked by the\nmanagement daemon\u0027s dependency on the configuration daemon and the flash\nstorage layer, which an image-only extraction does not provide. Appliance-side\nexecution identity was therefore not measured at runtime and is not claimed;\nthe replication\u0027s shell ran under the research host\u0027s privileged account,\nwhich is a property of the research environment, and the published claims are\nwritten against the web service\u0027s account, whichever that is.\n\nImpact. One authenticated request converts into command execution in the\nprocess context of the web management daemon, with command output returned\nthrough the same response channel. The service\u0027s read reach includes the\nproduct\u0027s configuration and state stores, so configuration data, recorded\ncredentials and network information can be exfiltrated in the same channel\nthat ping output arrives in. Both methods accept repeated calls with fresh\nhostnames, so staging, reading results and cleanup are one request each, and\nno persistence inside the product is needed. On a power distribution product,\navailability is the physical machine state: the injected command executes in\nthe daemon that hosts the outlet control surface, so the ability to cycle\noutlet power, and thereby hard-stop, every machine fed by the unit, follows\nfrom the product\u0027s own function. That consequence is a labelled inference.\nsink level was measured. Detection is poor by construction: the triggering\nrequest is a legitimate diagnostics call that the product logs as the\nassembled shell command, and the strongest available signal is shell-command\nlog review for the two templates.\n\nRemediation, in the order that removes the class: perform ping and traceroute\nwithout a shell, through their library or raw-socket interfaces or an\nargv-array spawn, which removes the CWE-78 class from this handler entirely;\ncorrect the verdict consumption - accept only the documented success returns\nand reject everything else - as a one-line containment that can ship\nimmediately; centralize hostname admission for both entry channels on a\nliteral-or-strict-name allow-list that runs before any command text is\nassembled, using the strict validator already present in the image; audit\nevery other consumer of the shared validation function for the same\nstrictly-greater consumption of the rejection constant; remove the factory\ndefault credential and force a first-login change, which closes the\nconditional unauthenticated chain; add injection regression suites for both\nchannels covering the full character-class table; and make the shell-template\nlog line an alertable event. Operator measures until firmware is fixed: change\nthe factory default immediately, restrict management access to the operations\nnetwork, prefer monitoring roles that need no diagnostics, and alert on\ndiagnostics shell lines whose host segment is not a literal address or strict\nname.\n\nProof of concept. The published tool is a standard-library-only Python 3\nclient that drives the entry path against an explicit target with explicit\ncredentials or a pre-established session token, a configurable command and\nexplicit timeouts; it attempts the two candidate session-establishment routes\nobserved in this framework generation\u0027s front ends and degrades to a supplied\ntoken, and it embeds no addresses, credentials or state of the verification\nenvironment. Safety rails: loopback default, no persistence steps, one\nnon-destructive marker command by default, and no configuration change beyond\nwhat the described request performs. Use it only against systems you own or\nare authorised to test.\n\nThe vendor\u0027s parent company product security team, whose signed RFC 9116\ncontact file on the parent\u0027s primary web host names the intake mailbox used,\nwas notified through that documented security mailbox, which is the only\nchannel used; no security intake of the router brand itself exists, no\npre-publication intake form was submitted, and no individual was addressed by\nname. This disclosure is unconditional: the research is published, no\npermission was asked for, no embargo was requested, nothing is withheld\npending a reply, and remediation questions are answered at no cost. No\nvulnerability identifier has been assigned to this finding.\n\nFull technical analysis and the reproducible proof of concept, published\nunconditionally:\n https://0day-rubbish.com/blog/raritan-px3-pdu-g4-diag-ping-traceroute-command-injection\n\nProject archive (ongoing disclosure series):\n https://github.com/Exploit-Garbage/0day-Rubbish\n\n--\n0day Rubbish Research Team\ndisclosure () 0day-rubbish com\nhttps://0day-rubbish.com\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives \u0026 RSS: https://seclists.org/fulldisclosure/"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-78",
"description": "CWE-78",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-02T07:30:04Z",
"orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
"shortName": "VULNARCHIVE"
},
"references": [
{
"tags": [
"technical-description",
"exploit"
],
"url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Oct/54"
},
{
"tags": [
"technical-description"
],
"url": "https://seclists.org/fulldisclosure/2026/Oct/54"
},
{
"url": "https://0day-rubbish.com"
},
{
"url": "https://0day-rubbish.com/blog/raritan-px3-pdu-g4-diag-ping-traceroute-command-injection"
},
{
"url": "https://github.com/Exploit-Garbage/0day-Rubbish"
},
{
"url": "https://nmap.org/mailman/listinfo/fulldisclosure"
},
{
"url": "https://seclists.org/fulldisclosure/"
}
],
"source": {
"defect": [
"https://seclists.org/fulldisclosure/2026/Oct/54"
],
"discovery": "EXTERNAL"
},
"title": "[0day-rubbish] Raritan PX3 PDU G4 firmware 4.3.14 command injection in the ping and traceroute diagnostics through an inverted hostname-validation return check (8.8)",
"x_gcve": [
{
"recordType": "advisory",
"relationships": [],
"vulnId": "GCVE-1988-2026-0506",
"x_vulnarchive": {
"archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Oct/54",
"automated": true,
"contentSha256": "8ab1603aae2c30145f46927eb66bc545f561770746543a7428d7f853ae26dd52",
"evidenceScore": 11,
"messageId": "",
"originalUrl": "https://seclists.org/fulldisclosure/2026/Oct/54",
"policy": "vulnarchive-1",
"sourceFormat": "text/html",
"sourcePublishedAt": "2026-10-27T16:39:44Z"
}
}
]
}
},
"cveMetadata": {
"assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
"assignerShortName": "VULNARCHIVE",
"datePublished": "2026-11-02T07:30:04Z",
"dateUpdated": "2026-11-02T07:30:04Z",
"state": "PUBLISHED",
"vulnId": "GCVE-1988-2026-0506"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.