You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Always include spaces before and after the `+` sign when combining multiple permissions in the `name` field.
17
36
18
-
### 2. PowerUserAccess is NOT Administrative Access
37
+
### 3. PowerUserAccess is NOT Administrative Access
19
38
20
39
**WRONG:**`The role must have administrative permissions (e.g., AdministratorAccess or PowerUserAccess)`
21
40
22
41
**CORRECT:**`The role must have administrative permissions (e.g., AdministratorAccess or an equivalent custom policy)`
23
42
24
43
PowerUserAccess does NOT provide administrative permissions (it specifically excludes IAM actions). When describing administrative access requirements in prerequisites, use "AdministratorAccess or an equivalent custom policy" instead.
25
44
26
-
### 3. Description Field Line Breaks
45
+
### 4. Description Field Line Breaks
27
46
28
47
**WRONG:**
29
48
```yaml
@@ -38,15 +57,15 @@ description: A principal with `iam:PassRole` and `ec2:RunInstances` can create a
38
57
39
58
Descriptions should be single-line in YAML (no artificial line breaks at ~80 characters). They will flow naturally in the UI based on container width.
40
59
41
-
### 4. Missing Backticks for IAM Permissions
60
+
### 5. Missing Backticks for IAM Permissions
42
61
43
62
**WRONG:** `A principal with iam:PassRole and ec2:RunInstances...`
44
63
45
64
**CORRECT:** ``A principal with `iam:PassRole` and `ec2:RunInstances`...``
46
65
47
66
All IAM permissions in descriptions, recommendations, and text should be formatted with backticks for code styling. This applies everywhere EXCEPT in the `name` field (which should be plain text).
- Different execution methods, not removing prerequisites
416
+
- These are alternative approaches, not variants
417
+
418
+
**Relationship to `discoveryAttribution`:**
419
+
- The `parent` field is for machine-readable technical relationships
420
+
- The `discoveryAttribution` field is for human-readable credit and attribution
421
+
- Keep both - they serve different purposes
422
+
423
+
Example:
424
+
```yaml
425
+
# IAM-003 (child/variant)
426
+
id: iam-003
427
+
name: iam:CreateAccessKey + iam:DeleteAccessKey
428
+
parent:
429
+
id: iam-002
430
+
modification: "Adds iam:DeleteAccessKey to enable exploitation even when the target user already has 2 access keys (AWS maximum). The attacker deletes one existing key before creating their own, removing the prerequisite that the user must have fewer than 2 keys."
modification: "Adds lambda:InvokeFunction to enable exploitation even when the target function has no existing trigger mechanism. Removes the prerequisite that something must already be invoking the function."
459
+
```
460
+
352
461
#### `prerequisites` (object or array)
353
462
Conditions that must be met for the escalation to work.
0 commit comments