Exfiltrate through a log subscription filter
Can stream a log group in real time to an attacker sink.
Grants escalation only in combination. All of these are needed together:
logs:PutSubscriptionFilteriam:PassRolelogs:PutSubscriptionFilter can stream a log group in real time to an attacker sink, but only when it is held together with iam:PassRole. Held together they reach access for an outside or public principal.
Why it is dangerous
A principal can call logs:PutSubscriptionFilter on log the group to stream every incoming log event in real time to an attacker-controlled Kinesis/Firehose/Lambda, exfiltrating application and audit logs continuously.
In MITRE ATT&CK terms this maps to T1537, Transfer Data to Cloud Account, under the exfiltration tactic. AWS records it in CloudTrail as PutSubscriptionFilter. The call is quiet against normal activity, so it is easy to miss without a rule for it. It also gives an attacker a way to keep access after the first foothold is closed, so it is worth watching even when it looks like routine administration.
Detection
PutSubscriptionFilterPrerequisites
logs:PutSubscriptionFilter, a reachable destination, and iam:PassRole for the delivery role.
MITRE ATT&CK
T1537 · Transfer Data to Cloud AccountTactic
Exfiltration
A control that would remove it: Restrict logs:PutSubscriptionFilter on the log group and iam:PassRole for the delivery role.
Whether to apply it depends on how the permission is used in your environment, so it is a business decision rather than an automatic fix. The same permission can be load-bearing in one account and pure risk in another.
Pathbreak confirms whether this path resolves in your account, ranks it against the others by how much it opens up, and uses your threat model and business context to show which paths are worth cutting.
Questions
What does logs:PutSubscriptionFilter allow?
Can stream a log group in real time to an attacker sink.
What else is needed for logs:PutSubscriptionFilter to be dangerous?
It becomes an escalation only when held together with iam:PassRole. On its own it is not enough, which is what makes the combination easy to miss.
How is exfiltrate through a log subscription filter detected?
Watch for PutSubscriptionFilter in CloudTrail. The call is quiet against normal activity, so it is easy to miss without a rule for it.
How do you break this path?
A control that would remove it is: Restrict logs:PutSubscriptionFilter on the log group and iam:PassRole for the delivery role. Whether to apply it depends on how the permission is used in your account, so it is a business decision rather than an automatic fix.
Which MITRE ATT&CK technique is this?
T1537, Transfer Data to Cloud Account, under the exfiltration tactic.
Related paths
References
Find this in your own account
We run a read-only scan of one AWS account and show you which of these paths exist, ranked by blast radius, with the change that breaks each one. First validated paths within the hour.