Skip to main content

ansible.posix EUVDEUVD-2026-35982

| CVE-2026-11837 HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-06-10 secalert@redhat.com GHSA-49qh-h4vj-mrgf
7.3
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local shell on managed host
  2. Delivery
    Stage malicious symlink in ~/.ssh/authorized_keys
  3. Exploit
    Wait for operator to run authorized_key as root
  4. Execution
    Module chowns symlink target to attacker UID
  5. Persist
    Attacker rewrites sensitive file (sudoers/shadow)
  6. Impact
    Escalate to root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Requires (1) an unprivileged local shell on a host managed by Ansible, (2) write access to the target user's ~/.ssh directory so an attacker-controlled symlink can be staged before the playbook runs, (3) an operator (or scheduled automation) that invokes the ansible.posix authorized_key module as root - explicitly or via become - against the attacker-controlled account, and (4) that the playbook does not use become_user to drop to the target user before the file operations. Exploitation is limited by the need to win or induce that operator-driven run (UI:R) and is not reachable remotely or without local access; hosts where authorized_key is only ever run against system accounts with operator-controlled ~/.ssh are not exploitable.

Impact

The CVSS 3.1 vector AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H reflects a realistic but constrained scenario: the attacker needs a local account (PR:L) on the managed node and must wait for, or induce, an operator to run an authorized_key task as root against their account (UI:R). EPSS and CISA KEV signals are not provided in the input, and no public exploit code is referenced, so exploitation is currently theoretical rather than observed. However, the bug class is trivially weaponizable once a target operator workflow is known - symlink-race chowning of arbitrary paths to a chosen UID is a classic root-to-arbitrary-write primitive - so for environments that routinely run authorized_key as root against user-controlled accounts (shared bastions, multi-tenant Linux hosts, CI runners), this should be treated as a real priority rather than a CVSS-inflated theoretical issue. Note: no CVSS-vs-description conflict is present; the local vector and required interaction are consistent with the described workflow.

Exploit ScenarioDerived

A low-privileged user on a managed host that is periodically configured by Ansible pre-creates ~/.ssh/authorized_keys as a symlink pointing to a sensitive system path such as /etc/shadow or /etc/sudoers.d/attacker. When an operator next runs a playbook that invokes ansible.posix.authorized_key as root for that user, the module's os.chown() follows the symlink and reassigns ownership of the target file to the attacker's UID, after which the attacker rewrites it to gain root. No public POC is referenced in the supplied intelligence, but the technique is straightforward to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 10, 2026

Local privilege escalation in the ansible.posix collection's authorized_key module allows an unprivileged local user to redirect root-owned file ownership changes to arbitrary system paths via symlink attacks in ~/.ssh. The module's keyfile() function calls os.chown() instead of os.lchown() and omits O_NOFOLLOW when opening files, so a pre-staged symlink is followed during privileged execution. No public exploit identified at time of analysis, but the technique is a well-understood TOCTOU/symlink class with a moderate-to-high CVSS (7.3).

RemediationAI

Upgrade the ansible.posix collection to the fixed release identified in the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-11837 (cross-reference https://bugzilla.redhat.com/show_bug.cgi?id=2487424 for the precise patched version, which is not independently confirmed in the data provided here). Until the patched collection is deployed, mitigations include: avoiding running the authorized_key module as root against accounts whose home directories are writable by the target user (use become_user to the target account so symlinks fall under the user's own UID, at the cost of needing the target user to exist with a usable shell); pre-creating and locking ~/.ssh and ~/.ssh/authorized_keys with correct ownership and immutable attributes (chattr +i) so symlink substitution fails (trade-off: future legitimate edits must temporarily clear the immutable bit); or restricting which operators can run playbooks containing authorized_key on multi-tenant hosts. Generic 'apply defense in depth' guidance is not sufficient here - the chown-follows-symlink primitive bypasses normal permission checks.

Affected ProductsAI

The affected component is the ansible.posix Ansible collection, specifically the authorized_key module's keyfile() implementation. Exact fixed versions are not enumerated in the provided intelligence; the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-11837 and Bugzilla entry https://bugzilla.redhat.com/show_bug.cgi?id=2487424 should be consulted for the authoritative version matrix. No CPE strings were provided in the input. All deployments that execute authorized_key as root against accounts whose ~/.ssh is writable by an untrusted local user are in scope, regardless of the Ansible controller version.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ansible.posix is a Red Hat-maintained Ansible collection providing POSIX-oriented modules, including authorized_key for managing SSH ~/.ssh/authorized_keys files on managed hosts. The flaw is rooted in CWE-59 (Improper Link Resolution Before File Access / 'Link Following'): when the keyfile() helper ensures the target user's authorized_keys file exists with correct ownership and permissions, it uses os.chown() (which follows symlinks) rather than os.lchown() (which operates on the link itself), and opens the file without the O_NOFOLLOW flag. Combined, these two issues mean any symlink the target user controls inside ~/.ssh is silently dereferenced by the module running as root, causing chown/open operations to apply to whatever path the symlink points to.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (redhat) PRIMARY 7.3 HIGH
AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Red Hat 7.3 HIGH

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

A local privilege escalation vulnerability was found in the ansible.posix authorized_key module. The module's keyfile() function uses os.chown() instead of os.lchown() and opens files without O_NOFOLLOW when managing SSH authorized keys. An unprivileged local user can pre-stage symbolic links in their ~/.ssh directory to redirect file ownership changes to arbitrary system paths when an operator runs the authorized_key task as root, leading to local privilege escalation.

Executive ViewAI

Why It Matters

CVE-2026-11837 affects the ansible.posix collection's authorized_key module, enabling unprivileged local users to escalate privileges to root via symlink attacks on SSH directories. No public exploit identified at time of analysis, but the vulnerability methodology is well-understood, creating material risk for organizations using Ansible to manage infrastructure. Vendor patches are not currently available, requiring immediate compensating controls on affected systems.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict local system access to trusted administrative accounts; (2) Implement filesystem monitoring and alerting on SSH directory modifications (ownership, permissions); (3) Deploy SELinux or AppArmor mandatory access controls to prevent unprivileged processes from following symlinks in sensitive paths; (4) Minimize local user accounts with system-level privileges; (5) Verify SSH authorized_keys integrity through out-of-band channels; (6) Audit Ansible execution contexts and eliminate unnecessary privilege escalation where feasible.

Threat Intelligence Overview

EPSS Score
0.0%
Top 94% exploitable
Social Media
3
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy