Someone left a sticky note on the office shredder that lets a coworker redirect the paper trail
CVE-2026-12555 is a CWE-379 (insecure temporary file creation) vulnerability in the HP Easy Start Uninstaller component for macOS, affecting all versions prior to 2.16.7.260722. The uninstaller runs with root privileges after the user clicks through the macOS authorization prompt, and during execution it writes log and lock files to predictable, world-writable paths under /tmp and /private/tmp. A local attacker who pre-plants symlinks at those expected paths can redirect the root-privileged write to an arbitrary file — appending log content, not attacker-controlled payloads. The result is file corruption or creation of root-owned files, not direct code execution. Researcher Nir Yehoshua of Cipher Security Labs discovered this alongside two sibling CVEs (CVE-2026-12554, CVE-2026-12556), all patched in HP bulletin HPSBPI04124.
A CVSS 4.0 vector circulating on aggregator sites scores this at 7.7 (High) with AV:N — but that network-attack-vector designation is flatly wrong for a local symlink race condition. The actual attack requires local shell access on the target Mac *and* the victim to actively invoke the uninstaller with admin credentials. The payload is append-only log data, not arbitrary content. For an enterprise fleet, HP Easy Start is a consumer printer setup wizard — it is not a managed endpoint agent, not a server component, and not part of any enterprise deployment pipeline. The severity inflation here is a scoring artifact, not reality.
4 steps from start to impact.
Attacker obtains local shell on macOS host
- Local shell access on macOS host
- HP Easy Start installed (versions < 2.16.7.260722)
- Requires prior compromise or insider access — this is a post-exploitation step, not an entry point
- HP Easy Start is a consumer utility; enterprise Macs rarely have it installed outside of ad-hoc printer setups
Plant symlinks at predictable /tmp paths
/tmp/HPEasyStart_uninstall.log or similar). These symlinks point to a sensitive target file the attacker wants to corrupt or overwrite, such as /etc/sudoers or a LaunchDaemon plist. The attacker must win the race — links must be in place before the uninstaller writes.- Knowledge of the predictable file paths (trivially discoverable via
stringsorfs_usage) - Write access to /tmp (default for all local users)
- Timing dependency: the uninstaller must be invoked *after* symlinks are planted
- macOS Sequoia and later restrict some /tmp symlink-following behavior via SIP and hardened runtime
fs_usage or Endpoint Security Framework (ESF) logs capture symlink operations.Victim invokes the uninstaller with admin authorization
- A user must actively choose to uninstall HP Easy Start
- User must authenticate with admin credentials at the macOS authorization prompt
- This is not a background service — it requires explicit, voluntary user interaction
- Uninstalling printer software is an infrequent event; the attack window is narrow and unpredictable
- The attacker cannot trigger the uninstaller remotely
File corruption or DoS achieved
- Symlinks in place before uninstaller writes
- Uninstaller actually writes to the predictable paths (not all code paths do)
- Append-only with uncontrolled content severely limits exploitation value
- macOS SIP protects most critical system files from modification even by root
- Achieving code execution from log-data append requires a separate, unrelated parsing vulnerability
The supporting signals.
| In-the-Wild Exploitation | None observed. No campaigns, no threat actor attribution, no KEV listing. SSVC exploitation rating: None. |
|---|---|
| Proof-of-Concept | No public PoC exists. Nir Yehoshua (Cipher Security Labs) discovered the flaw but has not released exploit code. |
| EPSS Score | 0.00226 (0.23%) — bottom quartile, reflecting extremely low predicted exploitation probability. |
| KEV Status | Not listed. No CISA KEV entry as of 2026-09-03. |
| CVSS Vector (aggregator) | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N — 7.7 High per aggregators, but AV:N is incorrect for a local symlink race. A realistic vector would use AV:L and UI:R (victim must invoke uninstaller), dropping the score significantly. |
| Affected Versions | HP Easy Start for macOS < 2.16.7.260722. Researcher tested on version 2.16.0. |
| Fixed Version | 2.16.7.260722 — released via HP bulletin HPSBPI04124. |
| Scanning/Exposure Data | HP Easy Start is a consumer printer setup utility downloaded ~319K times total (SourceForge). No Shodan/Censys/GreyNoise exposure — this is client-side software with no network listener. |
| Disclosure Date | 2026-08-24 — published by HP in coordinated disclosure with Cipher Security Labs. |
| Researcher | Nir Yehoshua, Cipher Security Labs. Also credited for sibling CVEs CVE-2026-12554 and CVE-2026-12556. |
noisgate verdict.
The single most decisive factor is the negligible enterprise installed base: HP Easy Start is a consumer macOS printer wizard, not managed infrastructure software — fewer than 1% of enterprise endpoints carry it. The attack additionally requires local access, voluntary victim interaction (manually running the uninstaller), and yields only uncontrolled log-data file append, not code execution.
Why this verdict
- Local-only, victim-triggered attack: The attacker needs local shell access *and* must wait for a user to voluntarily uninstall HP Easy Start with admin credentials. There is no remote or automated trigger — this is a narrow, opportunistic, post-compromise escalation path.
- Uncontrolled payload content: Unlike a classic arbitrary-write primitive, the attacker can only redirect where log data is written, not *what* is written. This limits practical impact to file corruption or DoS. Achieving code execution requires chaining with a separate parsing vulnerability — none has been demonstrated.
- Role multiplier: HP Easy Start is a consumer printer setup utility for macOS. It is NOT a high-value-role component. It does not run on domain controllers, hypervisors, identity providers, CI/CD systems, backup servers, or network edge appliances. Its blast radius is a single macOS workstation (low-value role). The high-value-role floor does not apply — this component has essentially 0% presence in the high-value-role catalog.
- Aggregator CVSS vector is miscoded: The circulating CVSS 4.0 vector uses
AV:N(Network) for what is demonstrably a local symlink race requiring physical or shell access. A corrected vector withAV:L/UI:Rwould score substantially lower, consistent with our LOW assessment. - EPSS confirms low risk signal: At 0.23%, this CVE sits in the bottom quartile of exploitation probability, consistent with the narrow attack prerequisites and absent PoC.
Why not higher?
To reach MEDIUM or above, we would need either a remote attack vector, a broader installed base in enterprise environments, or evidence that the file-append primitive can be weaponized into code execution. None of these conditions exist. The component is consumer software with no network exposure, no PoC, and the payload is uncontrolled log data — the theoretical ceiling for this bug is workstation-scoped DoS.
Why not lower?
We stop at LOW rather than IGNORE because the vulnerability is real and confirmed: a local attacker *can* redirect root-privileged writes to arbitrary paths, and there are edge-case scenarios (corrupting a LaunchDaemon plist on a non-SIP-protected volume) where this could cause operational disruption on an individual Mac. The fix is available and trivial to apply, so documenting and patching during normal cycles is appropriate hygiene.
What to do — in priority order.
- Uninstall HP Easy Start entirely from managed Macs — If your fleet doesn't need HP Easy Start (most enterprises use AirPrint, CUPS, or HP Easy Admin for managed deployments), remove it. This eliminates the attack surface completely. As a LOW-severity item, treat this as backlog hygiene — no mitigation SLA applies.
- Deploy macOS configuration profile restricting /tmp symlink creation — Use an MDM profile or endpoint security policy to monitor or restrict symlink creation in /tmp and /private/tmp targeting sensitive system paths. This is a defense-in-depth measure, not specific to this CVE.
- Ensure SIP (System Integrity Protection) is enabled — macOS SIP prevents even root from modifying protected system files (/System, /usr, etc.), which limits the blast radius of the symlink redirect. Verify SIP status across your fleet —
csrutil statusshould report 'enabled' on all managed Macs.
- Network segmentation / firewall rules — irrelevant; this is a local-only vulnerability with no network component despite the incorrect AV:N in the circulating CVSS vector.
- Antivirus signature scanning — no malware payload is involved; the attack uses legitimate OS primitives (symlinks) and a legitimate HP binary. AV will not flag this chain.
- Patching the macOS kernel — the vulnerability is in HP's userland application, not in the OS. macOS updates alone do not fix this.
Crowdsourced verification payload.
Run this script on any macOS host where you want to check the HP Easy Start version. No special privileges required — it reads the application bundle's Info.plist. Example: bash check_cve_2026_12555.sh
#!/bin/bash
# check_cve_2026_12555.sh
# Checks whether HP Easy Start for macOS is installed and vulnerable to CVE-2026-12555
# Target: macOS hosts | Privileges: none (read-only plist check)
# Output: VULNERABLE / PATCHED / UNKNOWN
APP_PATH="/Applications/HP Easy Start.app"
PLIST="$APP_PATH/Contents/Info.plist"
FIXED_VERSION="2.16.7.260722"
if [ ! -d "$APP_PATH" ]; then
echo "NOT APPLICABLE — HP Easy Start is not installed."
exit 0
fi
if [ ! -f "$PLIST" ]; then
echo "UNKNOWN — HP Easy Start found but Info.plist missing."
exit 2
fi
INSTALLED_VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$PLIST" 2>/dev/null)
if [ -z "$INSTALLED_VERSION" ]; then
echo "UNKNOWN — could not read version from Info.plist."
exit 2
fi
echo "Installed HP Easy Start version: $INSTALLED_VERSION"
echo "Fixed version: $FIXED_VERSION"
# Compare versions using sort -V
LOWEST=$(printf '%s\n%s' "$FIXED_VERSION" "$INSTALLED_VERSION" | sort -V | head -n1)
if [ "$INSTALLED_VERSION" = "$FIXED_VERSION" ] || [ "$LOWEST" = "$FIXED_VERSION" ]; then
echo "PATCHED — version $INSTALLED_VERSION >= $FIXED_VERSION."
exit 0
else
echo "VULNERABLE — version $INSTALLED_VERSION is below $FIXED_VERSION. CVE-2026-12555 applies."
exit 1
fiIf you remember one thing.
Sources
- GBHackers — Three HP Easy Start Flaws Let Attackers Gain Root Privileges on macOS
- Feedly CVE Intelligence — CVE-2026-12555
- CyberPress — Three HP Easy Start Vulnerabilities Expose macOS Systems
- OpenCVE — CVE-2026-12555
- MITRE CWE-379 — Creation of Temporary File in Directory with Insecure Permissions
- GitHub Advisory — GHSA-9jpq-gp3p-pv2f
- CVE Details — CVE-2026-12555
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.