---
id: CVE-2026-54135
title: >-
  AirSane is a SANE frontend, and a scanner server that supports Apple's AirScan
  protocol
summary: >-
  AirSane is a SANE frontend, and a scanner server that supports Apple's AirScan
  protocol. Versions prior to 0.4.12 have a vulnerability in the custom HTTP
  server implementation of AirSane that allows a remote unauthenticated attacker
  to c…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-400
  - CWE-770
vendor: SimulPiscator
product: AirSane
affected:
  - AirSane < 0.4.12
published: '2026-09-11'
updated: '2026-09-14'
sourceUpdated: '2026-09-14T19:17:27.203'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-54135'
references:
  - url: >-
      https://github.com/SimulPiscator/AirSane/commit/129cc3bf7258251a0a694dee7741285b59d88f9f
    label: security-advisories@github.com
  - url: 'https://github.com/SimulPiscator/AirSane/releases/tag/v0.4.12'
    label: security-advisories@github.com
  - url: >-
      https://github.com/SimulPiscator/AirSane/security/advisories/GHSA-p5hv-3m79-452q
    label: security-advisories@github.com
  - url: >-
      https://github.com/SimulPiscator/AirSane/security/advisories/GHSA-p5hv-3m79-452q
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
epss: 0.00761
epssPercentile: 0.53421
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-09-14T18:47:39.306737Z'
ingestedAt: '2026-09-14T11:11:19.886Z'
---

## Overview

AirSane is a SANE frontend, and a scanner server that supports Apple's AirScan protocol. Versions prior to 0.4.12 have a vulnerability in the custom HTTP server implementation of AirSane that allows a remote unauthenticated attacker to cause a Denial of Service (DoS) via memory exhaustion (OOM). In httpserver.cpp, the HttpServer::Request::content function reads the Content-Length header and directly passes this value to std::string::resize() without any upper-bound validation or safe parsing. An attacker can send an HTTP POST request with an artificially large Content-Length value. This forces the daemon to attempt allocating gigabytes of memory, resulting in a std::bad_alloc exception and immediately crashing the AirSane process. Additionally, providing non-numeric characters in the Content-Length header leads to undefined behavior (NaN to integer conversion) due to the lack of error handling during header parsing. Version 0.4.12 patches the issue.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
