TinyWeb CGI Command Injection
TinyWeb is a web server (HTTP, HTTPS) written in Delphi for Win32. TinyWeb HTTP Server before version 1.98 is vulnerable to OS command injection via CGI ISINDEX-style query parameters. The query parameters are passed as command-line arguments to the CGI executable via Windows CreateProcess(). An unauthenticated remote attacker can execute arbitrary commands on the server by injecting Windows shell metacharacters into HTTP requests. This vulnerability is fixed in 1.98.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-22781
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 21:05 UTC · Revision 1
Source evidence
TinyWeb is a web server (HTTP, HTTPS) written in Delphi for Win32. TinyWeb HTTP Server before version 1.98 is vulnerable to OS command injection via CGI ISINDEX-style query parameters. The query parameters are passed as command-line arguments to the CGI executable via Windows CreateProcess(). An unauthenticated remote attacker can execute arbitrary commands on the server by injecting Windows shell metacharacters into HTTP requests. This vulnerability is fixed in 1.98.
osv:CVE-2026-22781
Complete source record
{
"id": "09a4af80b385cea7f1581bd95ab70d8bfcaf15f0eda354d95a80dd63fb84b396",
"url": "https://osv.dev/vulnerability/CVE-2026-22781",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "TinyWeb CGI Command Injection",
"summary": "TinyWeb is a web server (HTTP, HTTPS) written in Delphi for Win32. TinyWeb HTTP Server before version 1.98 is vulnerable to OS command injection via CGI ISINDEX-style query parameters. The query parameters are passed as command-line arguments to the CGI executable via Windows CreateProcess(). An unauthenticated remote attacker can execute arbitrary commands on the server by injecting Windows shell metacharacters into HTTP requests. This vulnerability is fixed in 1.98.",
"evidence": "osv:CVE-2026-22781",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-22781",
"aliases": [
"CVE-2026-22781",
"GHSA-m779-84h5-72q2"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/maximmasiutin/tinyweb",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "3407898cefc109d5e2138fffedf91c8aa0f3ecd4"
},
{
"fixed": "876b7e2887f4ea5be3e18bb2af7313f23a283c96"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:ritlabs:tinyweb:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.98"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "876b7e2887f4ea5be3e18bb2af7313f23a283c96"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v1.97",
"v1.96",
"v1.95"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22781.json"
}
}
],
"modified": "2026-10-28T02:30:39.811624315Z",
"provider": "osv",
"references": [
"https://www.masiutin.net/tinyweb-cve-2025-cgi-command-injection.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22781.json",
"https://github.com/maximmasiutin/TinyWeb/security/advisories/GHSA-m779-84h5-72q2",
"https://nvd.nist.gov/vuln/detail/CVE-2026-22781",
"https://github.com/maximmasiutin/TinyWeb/commit/876b7e2887f4ea5be3e18bb2af7313f23a283c96"
],
"provider_metadata": {
"cwe_ids": [
"CWE-78"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22781.json"
}
},
"related_cves": [
{
"value": "CVE-2026-22781",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 507019,
"published_at": "2026-01-12T18:23:00.512+00:00"
}