A declared redirect-host allowlist that resolves empty means no restriction
I maintainer di solito rispondono entro 1 giorno
@heskew ci sta già lavorando.
Dal 1/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
A declared redirect-host allowlist that resolves to an empty list is treated as "no restriction" instead of failing closed.
normalizeMcpSecurityConfig (src/lib/config.ts) filters mcp.dynamicClientRegistration.allowedRedirectUriHosts and mcp.clientIdMetadataDocuments.allowedHosts down to non-empty entries. A declared value whose entries all resolve blank therefore normalizes to [], for example:
- an env placeholder that expands to
""(docker-composeX=${X}withXunset) - whitespace-only entries
validateRedirectUri (src/lib/mcp/clientValidator.ts) reads an empty or absent list as "no allowlist" (allowedHosts && allowedHosts.length > 0 && ...). So the operator declared a restriction and gets none. A declared CIMD allowedHosts that resolves empty has the same effect for interactive CIMD clients. The headless client_credentials path already refuses an empty list.
This is the same fail-open shape that #240 and #207 closed for initialAccessToken and the MCP feature booleans (HarperFast/oauth#247).
Fix: when MCP is enabled and the key is declared, but the list is empty after normalization, throw at startup naming the key. That matches the fail-closed handling of the other fields. Omitting the key keeps the documented "no allowlist" default. Raised in review of #247 and deliberately left out of it.
- Lingua principale
- JavaScript
- Stelle
- 1
- Fork
- 3
- Merge medio
- 6h 48m
- PR unite (30g)
- 25
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di HarperFast/oauth
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 53/100
HarperFast/oauth#284 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 69/100
HarperFast/oauth#283 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 18/100
HarperFast/oauth#280 ·
I maintainer di solito rispondono entro 1 giorno
-
Open-issue triage and roadmap (post-2.9.0)Forse di nuovo libera @heskew l’ha presa 31 giorni fa e non c’è nessuna pull request aperta. Aperta
HarperFast/oauth#278 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Session docs overstate expiry: no default lifetime, and invalidation clears fields rather than deleting the rowForse di nuovo libera @heskew l’ha presa 31 giorni fa e non c’è nessuna pull request aperta. Aperta
HarperFast/oauth#277 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di HarperFast/oauth
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
521xueweihan/HelloGitHub#4237 ·
-
Incorrect fuctioning of `Container.removeChildren()` when provided with nonzero starting indexAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 2 giorni
-
bug confirmed js v6
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
area/frontend area/v2 kind/bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno