Description
A flaw was found in the memcached cache plugin of the community.general Ansible
collection. Although its documentation states that records are stored in JSON
format, the plugin performs no explicit serialization and relies on
python-memcached, which pickles values on write and unpickles them on read.
Because memcached is unauthenticated and cache keys are predictable, an attacker
able to reach a network-exposed or shared memcached instance can write a crafted
pickle payload that is deserialized and executed on the Ansible controller when
the poisoned fact cache is next read, leading to remote code execution.
Published: 2026-09-09
Score: 8.1 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the memcached cache plugin of the community.general Ansible collection allows untrusted pickle data to be deserialized on the controller, enabling an attacker to execute arbitrary code. The plugin documentation claims that records are stored in JSON format, but it actually relies on python-memcached, which pickles values on write and unpickles them on read. Because memcached is unauthenticated and cache keys are predictable, a crafted pickle payload can be written to a network-exposed or shared memcached instance and will be executed by the controller when the poisoned fact cache is next read, fulfilling CWE-502.

Affected Systems

Red Hat Ceph Storage 5, Red Hat Ceph Storage 9, Red Hat OpenStack Platform 17.1, and Red Hat OpenStack Platform 18.0 are affected. The vulnerability exists in the memcached cache plugin used by these products when the cache is configured to allow unauthenticated network access. The affected versions are those indicated by the CNA, without further version granularity.

Risk and Exploitability

The CVSS score of 8.1 indicates a high impact. The EPSS score is unavailable, so it is unclear how frequently this flaw is exploited. The flaw is not listed in the CISA KEV catalog. The likely attack vector is a network-exposed, unauthenticated memcached instance whose cache keys are predictable; an attacker can inject a crafted pickle payload that will be unpickled by the Ansible controller during a subsequent fact cache read, leading to remote code execution on the controller host.

Generated by OpenCVE AI on September 9, 2026 at 18:51 UTC.

Remediation

Vendor Workaround

Bind memcached to localhost only (the plugin default, 127.0.0.1:11211) and never expose an unauthenticated memcached across a trust boundary; isolate the cache to the controller. Prefer the redis cache plugin (explicit JSON) or the jsonfile/yaml cache plugins where a shared/remote fact cache is required. Treat any host with write access to the fact-cache memcached as trusted to run code on the controller.


OpenCVE Recommended Actions

  • Bind memcached to localhost only and prevent exposure across trust boundaries.
  • Ensure the cache is isolated to the controller and never allow unauthenticated writes from untrusted hosts.
  • Prefer safe cache plugins such as redis (explicit JSON) or jsonfile/yaml when a shared or remote fact cache is needed.

Generated by OpenCVE AI on September 9, 2026 at 18:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 09 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 09 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description A flaw was found in the memcached cache plugin of the community.general Ansible collection. Although its documentation states that records are stored in JSON format, the plugin performs no explicit serialization and relies on python-memcached, which pickles values on write and unpickles them on read. Because memcached is unauthenticated and cache keys are predictable, an attacker able to reach a network-exposed or shared memcached instance can write a crafted pickle payload that is deserialized and executed on the Ansible controller when the poisoned fact cache is next read, leading to remote code execution.
Title Community.general: community.general: memcached cache plugin deserializes untrusted pickle data from memcached, enabling cache-poisoning remote code execution on the ansible controller
First Time appeared Redhat
Redhat ceph Storage
Redhat openstack
Weaknesses CWE-502
CPEs cpe:/a:redhat:ceph_storage:5
cpe:/a:redhat:ceph_storage:9
cpe:/a:redhat:openstack:17.1
cpe:/a:redhat:openstack:18.0
Vendors & Products Redhat
Redhat ceph Storage
Redhat openstack
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Redhat Ceph Storage Openstack
cve-icon MITRE

Status: PUBLISHED

Assigner: redhat

Published:

Updated: 2026-09-09T16:59:14.348Z

Reserved: 2026-09-09T13:36:20.508Z

Link: CVE-2026-87874

cve-icon Vulnrichment

Updated: 2026-09-09T16:58:59.241Z

cve-icon NVD

Status : Received

Published: 2026-09-09T17:17:53.093

Modified: 2026-09-09T17:17:53.093

Link: CVE-2026-87874

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-09T19:00:15Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data