Builder Plugin Hook not present for Add Potential Link
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
The Builder Plugin only works when using an adversary that uses the atomic planner, and does not work when adding a potential link.
This occurs because the Builder Plugin Hook uses the executor.HOOKS dictionary, which is only checked in planning_svc.py (_generate_new_links).
This function is only called by the atomic planner and is never reached when using Add Potential Links.
I will be submitting a PR that address this bug and proposes a better way to approach these hooks in a more flexible manner.
To Reproduce
Steps to reproduce the behavior:
- Start Caldera with Builder plugin enabled.
- Add a potential link with a Caldera ability that leverages the Builder plugin.
Expected behavior
The Builder plugin ability should work no matter how it is executed (Add Potential Link or Adversary with Planner).
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: Ubuntu
- Browser: Firefox
- Version Caldera v4.2 and Caldera v5
Additional context
Add any other context about the problem here.
Migrated from mitre/caldera#3078
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading app/service/planning_svc.py, especially _generate_new_links, and inspect how executor.HOOKS is checked during atomic planning. Reproduce the issue by adding a potential link with a Builder plugin ability, then trace that execution path. Done means the ability works through both Add Potential Link and adversary planner execution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100