A software company's engineering assistant lets staff ask it to open, review and merge pull requests on the company's code-hosting platform. Its integration authenticates to the platform with one bot token holding organisation administrator rights, and the system prompt tells it to act within each requester's permissions. A quarterly audit found that a contractor with read-only access to the billing repository asked the assistant to merge a change there, and the merge succeeded. The platform's audit log attributes the merge to the bot account, branch protection settings have not changed in a year, and the same contractor's direct attempt to merge the same change an hour earlier was rejected. What most likely allowed the merge?
- ABranch protection on the billing repository was misconfigured and let any account merge without approval
- BThe contractor's identity provider group grants write access that the platform mapped incorrectly
- CThe platform authorised the merge against the bot token's rights, not the contractor's delegated identity Correct
- DThe model ignored its instruction to check permissions, which a stronger system prompt rule would enforce
Why A is wrong: This is tempting because an unexpected merge into a protected repository points at protection settings. It is wrong because the settings were unchanged and correctly rejected the contractor's own direct attempt, so protection works for the contractor's identity.
Why B is wrong: This is tempting because group-to-permission mapping errors are a common source of excess access. It is wrong because the platform rejected the contractor's direct merge, which shows the contractor's own mapped permissions are read-only as intended.
Why C is correct: Correct. The audit log attributes the merge to the bot, so the platform checked the bot's administrator rights. Acting on the requester's delegated identity, or a token scoped to that user, would let the platform's own authorisation reject the merge as it did the direct attempt.
Why D is wrong: This is tempting because the model did act outside the requester's permissions despite the instruction. It is wrong because a prompt rule only asks the model to self-police; the platform will accept anything the administrator token can do, so rewording the prompt leaves the gap open.