Skip to content

Bind OIDC logout URLs to the requesting session#1313

Open
lovasoa wants to merge 1 commit into
mainfrom
ophir.lojkine/fix-oidc-logout-session-binding
Open

Bind OIDC logout URLs to the requesting session#1313
lovasoa wants to merge 1 commit into
mainfrom
ophir.lojkine/fix-oidc-logout-session-binding

Conversation

@lovasoa

@lovasoa lovasoa commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

OIDC logout URLs were not session-bound (forced logout)

A logout URL signed only the redirect target and a timestamp, so any valid, unexpired logout URL cleared whoever's cookies followed it. Impact is forced logout, not account takeover.

The signature now also covers the caller's sqlpage_auth cookie, so a logout URL only logs out the session it was issued for. Generation and verification select the same cookie (the last of any duplicates, matching how RequestInfo merges them), keeping the check consistent.

Out of scope: an attacker who can plant cookies on the origin, per SECURITY.md. Unit + mock-IdP integration tests cover session-bound logout and the duplicate-cookie selection. cargo test --test mod oidc (12 tests) and clippy pass.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e22fdc6a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/webserver/database/sqlpage_functions/functions.rs Outdated
@lovasoa lovasoa force-pushed the ophir.lojkine/fix-oidc-logout-session-binding branch from 8e359d2 to d52f0fa Compare June 10, 2026 15:03

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 823c469ed6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/webserver/database/sqlpage_functions/functions.rs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6521bb49c3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/webserver/oidc.rs
Logout URLs were signed only over the redirect target and a timestamp, so any
valid, unexpired logout URL would clear whoever's cookies followed it. The
logout signature now also covers the caller's sqlpage_auth cookie, so a logout
URL only logs out the session it was issued for. Generation and verification
select the same cookie (the last of any duplicates, matching how RequestInfo
merges them) so the check stays consistent.
@lovasoa lovasoa force-pushed the ophir.lojkine/fix-oidc-logout-session-binding branch from 6521bb4 to 20f78f8 Compare June 10, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant