Add advisory for pipedash-web: unauthenticated instance takeover via POST /api/v1/setup/config - #3157
Open
dustfeather wants to merge 1 commit into
Open
Add advisory for pipedash-web: unauthenticated instance takeover via POST /api/v1/setup/config#3157dustfeather wants to merge 1 commit into
dustfeather wants to merge 1 commit into
Conversation
POST /api/v1/setup/config is exempt from the auth middleware and has no completed-setup guard. It writes a caller-supplied vault_password into PIPEDASH_VAULT_PASSWORD, which the middleware reads per-request to decide the valid bearer token, so an unauthenticated caller can set the API credential and gain full API access. Reproduced against ghcr.io/hcavarsan/pipedash-web:0.1.1. Reported upstream: hcavarsan/pipedash#39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an advisory for
pipedash-web: an unauthenticated caller who can reach the listener can set the API credential and take over a running instance.POST /api/v1/setup/configis exempt from the auth middleware by path prefix and has no completed-setup guard. It writes a caller-suppliedvault_passwordintoPIPEDASH_VAULT_PASSWORD, whichget_api_auth_token()reads per request to decide the valid bearer token. Setting it therefore grants full API access to a correctly-configured instance, and simultaneously locks the real operator out because the vault key is re-derived from the new password.CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — 9.8.
patched = [], as there is no fixed release.Reproduced against the published image
ghcr.io/hcavarsan/pipedash-web:0.1.1(digestsha256:3d799913e92174f81a74cf839aa5bf07acc194aed320b63731e47fd96198355f), started with a strongPIPEDASH_VAULT_PASSWORDset:Disclosure status — please read before merging
I want to be upfront that this does not yet meet the prerequisites in
CONTRIBUTING.md, and I would rather say so than have you discover it in review:SECURITY.md, so there was no private channel to use. I asked in the issue that private reporting be enabled.So this sits under the "no response two weeks after public disclosure on the issue tracker" clause, and two weeks have not elapsed. Please hold, label, or close this as you see fit — I am filing now rather than in two weeks only so it is queued with the reproduction attached, not to bypass the waiting period. I will follow up on this PR either when the maintainer confirms or when the two weeks are up, whichever comes first, and I have offered upstream to coordinate timing if they would prefer to cut a patched release before this lands.
The crate is published on crates.io (
pipedash-web0.1.1, alongside nine sibling crates from the same workspace), which is why I am filing here rather than only on the issue tracker.Full audit report with the other findings: https://claude.ai/code/artifact/cfeb8bbc-4413-48bf-9cbe-e678bf7f7de0