Skip to main content

Secrets Replicator CVE-2026-105165

| EUVDEUVD-2026-92131 MEDIUM
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-10-04 VulDB GHSA-88p5-cp9r-57qh
5.3
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Obtain AWS identity able to invoke destination role
  2. Delivery
    Target cross-account AssumeRole trust
  3. Exploit
    Abuse missing External ID enforcement
  4. Execution
    Assume role without confused-deputy check
  5. Impact
    Access replicated secrets cross-account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
Exploitation Conditions

Applies only to deployments using cross-account AssumeRole replication that rely on an External ID (external_id on the destination config) as the confused-deputy safeguard; in versions up to 0.4.0 external_id was never forwarded to sts:AssumeRole, so the safeguard was silently inert. Exploitation requires an attacker to already hold or influence an AWS identity capable of assuming the destination role (PR:L), limiting it to parties with some standing in the AWS trust relationship. It does NOT affect single-account deployments or configurations that never relied on External ID for isolation.

Impact

This is a medium-severity (CVSS 5.3) authorization flaw, not a high-priority emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) with low impact across confidentiality, integrity, and availability (VC:L/VI:L/VA:L) and no scope/subsequent-system impact indicates a limited, partial-impact issue requiring some existing privilege (PR:L). The source diff clarifies the actual defect: before v0.5.0 the external_id parameter was never passed into the sts:AssumeRole call in process_single_secret, so the External ID (a confused-deputy protection) was documented as 'required' but was not actually enforced - matching CWE-732 (incorrect permission assignment). No EPSS score, KEV listing, or POC is present in the data, so there is no evidence of active or likely exploitation. The sole reporter is VulDB, which frequently auto-generates low-signal entries; combined with an obscure open-source product, real-world risk is low despite the clean network-vector framing. Note a nuance: the vendor marks AC:L, but realistic exploitation depends on an attacker already being positioned to assume the role and on External ID being the only barrier, which is closer to higher complexity - verify against your deployment.

Exploit ScenarioDerived

A deployment configures cross-account secret replication expecting an AWS External ID to gate the destination AssumeRole. Because versions up to 0.4.0 never pass external_id to sts:AssumeRole, a third party who can induce or reuse the trusted role relationship (a classic confused-deputy scenario) can obtain access the External ID was meant to prevent, exposing replicated secret material. No public exploit is identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 04, 2026

Cross-account secret replication in devopspolis secrets-replicator up to and including 0.4.0 silently drops the configured External ID, so the confused-deputy safeguard that operators believe protects the destination role is never actually enforced. An attacker who already holds or can influence an AWS principal that is permitted to assume the destination role (CVSS PR:L, requiring some standing in the trust relationship) can therefore assume it without supplying the External ID, resulting in incorrect permission assignment and limited confidentiality and integrity impact (CVSS 5.3, CWE-732). The flaw affects only deployments that use cross-account AssumeRole replication and rely on external_id for isolation; single-account deployments and configurations that never used an External ID are not impacted. Patches ship in v0.5.0 (commit b42239405fbf4fae3c3f0048fc0b4225112edceb) and no public exploit code or confirmed active exploitation has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to secrets-replicator 0.5.0 (release https://github.com/devopspolis/secrets-replicator/releases/tag/v0.5.0), which contains commit b42239405fbf4fae3c3f0048fc0b4225112edceb and introduces the external_id field on DestinationConfig, loads it from the destination config, and passes it to sts AssumeRole. Any role trust policy whose only protection is a sts:ExternalId condition should be assumed to have been ineffective at any time a version ≤ 0.4.0 was running, so treat those assume-role events as unaudited until reviewed. Until upgrades complete, the actionable compensating control is to tighten the destination role trust policy itself: remove or narrow Wildcard principals, add aws:PrincipalArn and aws:SourceAccount/aws:SourceArn conditions, scope the assumed role's permissions to the minimum secrets required, and enable CloudTrail AssumeRole logging with alerts on AssumeRole calls that lack an externalId field; the trade-off is that tightening trust conditions is deployment-specific and may break legitimate replication paths until the principal set is enumerated. Rotating any External ID values exposed in configuration is also advisable, although note that with ≤ 0.4.0 the External ID was never sent, so rotation alone does not mitigate the issue. Explicitly verify after upgrading that External ID values appear in the AssumeRole request via CloudTrail before decommissioning the Workarounds.

Affected VersionsENISA

secrets-replicator 0.2
secrets-replicator 0.3
secrets-replicator 0.1
secrets-replicator 0.4.0

Affected Packages

euvd secrets_replicator no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

The component is an AWS AssumeRole handler inside secrets-replicator, a tool that copies secrets from a source AWS account to destinations, optionally in other accounts via sts:AssumeRole. In AWS, the External ID is a shared secret value that a trusted account places in its AssumeRole call and that the trusting account enforces with a sts:ExternalId condition in the role's trust policy; it exists precisely to defeat the confused-deputy problem where a third party is tricked into using a service's ability to assume a role. The vulnerability is an instance of CWE-732 (Incorrect Permission Assignment for Critical Resource): the destination configuration object gained no external_id field, config.py never loaded the external_id/externalId key from destination definitions, and process_single_secret() in src/handler.py called sts AssumeRole with only region and role_arn, omitting external_id entirely. The net effect is that the External ID was never transmitted, so any trust policy relying solely on a sts:ExternalId condition became satisfiable without the secret; the patch adds an Optional external_id field to DestinationConfig, populates it from destination config data (including the camelCase externalId alias), and forwards it into the AssumeRole call. This depends on AWS STS assuming-role semantics, IAM trust policies with ExternalId conditions, and the deployment topology of cross-account replication.

Know when AWS gets its next vulnerability

  • 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 (VulDB) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.2 MEDIUM

AWS API access gives AV:N; AC:H and PR:L because the attacker must already be positioned in the role trust where External ID was the only barrier; partial C/I impact on secrets, no availability effect.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability has been found in devopspolis secrets-replicator up to 0.4.0. Impacted is the function process_single_secret of the file src/handler.py of the component AssumeRole Handler. Such manipulation of the argument external_id leads to incorrect permission assignment. The attack can be executed remotely. Upgrading to version 0.5.0 is recommended to address this issue. The name of the patch is b42239405fbf4fae3c3f0048fc0b4225112edceb. It is suggested to upgrade the affected component.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Rare
obscure open-source AWS replication tool, negligible enterprise footprint
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in AWS

View all
CVE-2026-103956 CRITICAL POC
10.0 Oct 02

Loom for AWS deployments running a version before 1.6.1 with no identity provider configured expose an unauthenticated s

CVE-2026-27702 CRITICAL POC
9.9 Feb 25

Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal

CVE-2025-64709 CRITICAL POC
9.9 Nov 13

Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar

CVE-2020-37153 CRITICAL POC
9.8 Feb 11

Multiple vulnerabilities in ASTPP 4.0.1 including XSS and command injection in SIP device configuration and plugin manag

CVE-2026-87911 CRITICAL POC
9.0 Sep 09

Remote code execution in Amazon awslabs postgres-mcp-server before 1.1.7 lets remote actors run arbitrary OS commands on

CVE-2026-11393 HIGH POC
8.8 Jun 08

Remote code execution in AWS AgentCore CLI before v0.14.2 allows authenticated attackers to inject Python code via craft

CVE-2026-18140 HIGH POC
8.7 Jul 30

Denial of service in the aws-smithy-json Rust runtime crate (versions before 0.62.7) lets remote unauthenticated attacke

CVE-2026-16756 HIGH POC
8.7 Jul 23

Denial of service in Amazon's aws-smithy-http-server Rust crate (versions prior to 0.66.5) lets remote unauthenticated a

CVE-2026-16796 HIGH POC
8.4 Jul 23

Argument injection in the AWS Bedrock AgentCore Python SDK before 1.18.1 lets a remote authenticated user run arbitrary

CVE-2026-9133 HIGH POC
8.3 May 20

Arbitrary file read in amazon-mq rabbitmq-aws before 0.2.1 allows authenticated remote users to read any file accessible

CVE-2026-13763 HIGH POC
7.9 Jun 29

WAF managed-rule body inspection on AWS Application Load Balancer (ALB) can be bypassed by remote actors who fragment an

CVE-2026-13762 HIGH POC
7.9 Jun 29

WAF inspection bypass in Amazon CloudFront (with AWS WAF enabled) lets remote actors smuggle malicious request bodies pa

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