Skip to content

Commit 338b89b

Browse files
authored
Chore/githound updates (#3)
* update GH_CanEditProtection.md * update t0-all-repo-admin-role.json * update edge description
1 parent ae10655 commit 338b89b

3 files changed

Lines changed: 6 additions & 4 deletions

File tree

descriptions/edges/GH_CanEditProtection.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## General Information
22

3-
The traversable GH_CanEditProtection edge is a computed edge indicating that a role can modify or remove the branch protection rules governing a specific branch. This edge is emitted when the role has GH_EditRepoProtections or GH_AdminTo permissions and the branch is covered by at least one branch protection rule. The edge targets the protected branch (not the BPR itself) because the security impact is evaluated per-branch — a role that can weaken or remove protections on a branch can subsequently push code to it, representing a privilege escalation path.
3+
The traversable GH_CanEditProtection edge is a computed edge indicating that a role can modify or remove branch protection rules in a repository. This edge is emitted when the role has GH_EditRepoProtections or GH_AdminTo permissions and the repository contains at least one protected branch. Repo-targeted edges model the repo-wide security impact for attack path traversal; branch-targeted edges are also emitted as supporting evidence for each protected branch governed by those rules.
44

55
## Scenarios
66

@@ -13,6 +13,7 @@ graph LR
1313
role("GH_RepoRole admin") -->|GH_AdminTo| repo("GH_Repository")
1414
repo -->|GH_HasBranch| branch("GH_Branch main")
1515
bpr("GH_BranchProtectionRule") -->|GH_ProtectedBy| branch
16+
role ==>|GH_CanEditProtection| repo
1617
role ==>|GH_CanEditProtection| branch
1718
```
1819

@@ -25,5 +26,6 @@ graph LR
2526
role("GH_RepoRole custom") -->|GH_EditRepoProtections| repo("GH_Repository")
2627
repo -->|GH_HasBranch| branch("GH_Branch main")
2728
bpr("GH_BranchProtectionRule") -->|GH_ProtectedBy| branch
29+
role ==>|GH_CanEditProtection| repo
2830
role ==>|GH_CanEditProtection| branch
2931
```

extension/privilege_zone_rules/t0-all-repo-admin-role.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "GitHub: Tier Zero All-Repo Admin Role",
33
"description": "The synthetic all_repo_admin role grants admin access to every repository in the organization. This role is inherited by the owners role via GH_HasBaseRole and cascades admin permissions including branch protection editing, secret access, and deploy key management to all repositories.",
4-
"cypher": "MATCH (n:GH_OrgRole)\nWHERE n.name ENDS\nWITH '/all_repo_admin'\nRETURN n",
4+
"cypher": "MATCH (n:GH_OrgRole)\nWHERE n.name CONTAINS 'ALL_REPO_ADMIN'\nRETURN n",
55
"enabled": true,
66
"zone": "Tier Zero",
77
"allow_disable": true

extension/schema.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"schema": {
33
"name": "SOGitHub",
44
"display_name": "GitHub Extension (by SpecterOps)",
5-
"version": "v1.2.2",
5+
"version": "v1.2.3",
66
"namespace": "GH"
77
},
88
"node_kinds": [
@@ -648,7 +648,7 @@
648648
},
649649
{
650650
"name": "GH_CanEditProtection",
651-
"description": "[Repository - Computed] Repo role can modify or remove the branch protection rules governing this branch (computed from GH_EditRepoProtections + GH_ProtectedBy)",
651+
"description": "[Repository - Computed] Repo role can modify or remove branch protection rules for the repository/branch (computed from GH_EditRepoProtections + GH_ProtectedBy)",
652652
"is_traversable": true
653653
},
654654
{

0 commit comments

Comments
 (0)