Skip to content

[pull] main from guacsec:main - #243

Merged
pull[bot] merged 6 commits into
trustification:mainfrom
guacsec:main
Sep 7, 2026
Merged

[pull] main from guacsec:main#243
pull[bot] merged 6 commits into
trustification:mainfrom
guacsec:main

Conversation

@pull

@pull pull Bot commented Sep 7, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

ctron and others added 6 commits September 7, 2026 10:31
A user with only CreateAdvisory permission can upload an SBOM through
the advisory endpoint by passing ?format=spdx, bypassing the CreateSbom
permission check entirely. The test enables real authorization, creates
a user with only create.advisory, and demonstrates that the SBOM
endpoint correctly rejects the user (403) while the advisory endpoint
accepts the SBOM upload (201) and stores it in the sbom table.

Also introduces CallerBuilder to the fundamental test harness and
caller_app_auth to test-context, enabling tests with custom Authorizer
configurations.

Assisted-by: Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Change the test assertion to expect that the advisory endpoint rejects
SBOM uploads via ?format=spdx when the user lacks CreateSbom. The test
now fails while the bypass exists, and will pass once the fix is applied.

Assisted-by: Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The advisory and SBOM upload endpoints accepted any Format variant via
the ?format= query parameter, allowing a user with only CreateAdvisory
to upload SBOMs (and vice versa). Add Format::ensure_allowed_for() that
validates concrete formats against the endpoint's category using the
existing matches_hint() logic, and call it in both upload handlers.

Format::Unknown is mapped to the endpoint's default category so that
?format=unknown cannot widen detection beyond the endpoint's scope.

Also adds NVD to the Advisory category in matches_hint().

Assisted-by: Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assisted-by: Claude Code
Inline the app initialization into CallerBuilder::build() so there is
a single builder for test app setup. Remove caller_app_auth from
test-context since the authorizer is now owned by CallerBuilder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assisted-by: Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assisted-by: Claude Code
@pull pull Bot locked and limited conversation to collaborators Sep 7, 2026
@pull pull Bot added the ⤵️ pull label Sep 7, 2026
@pull
pull Bot merged commit 7a4b8ab into trustification:main Sep 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant