Skip to content

Fixed: externalLoginKey enable flag never checked, cannot be changed live (OFBIZ-13519) - #1848

Merged
mridulpathak merged 1 commit into
apache:release24.09from
mridulpathak:OFBIZ-13519-release24.09
Sep 3, 2026
Merged

mridulpathak merged 1 commit into
apache:release24.09from
mridulpathak:OFBIZ-13519-release24.09

Conversation

@mridulpathak

Copy link
Copy Markdown
Contributor

Backported from trunk (#1847). isExternalLoginKeyEnabled() cached the security.login.externalLoginKey.enabled property in a static field on first read and never re-read it, so any later change made no difference until a process restart. Separately, checkExternalLoginKey() -- the consumption path wired into the default preprocessor chain used by most controller.xml files -- never called isExternalLoginKeyEnabled() at all; the flag was only ever checked at the two key-generation call sites (RequestHandler.makeLink(), ScreenRenderer.java). Together this meant an admin disabling the property got no change in behavior on either the caching or the enforcement side. This removes the permanent caching so the property is re-read on every call, and adds the missing check to checkExternalLoginKey() so it short-circuits to success without touching the key when the feature is disabled. The production fix cherry-picked cleanly; the test file did not, since this branch's ExternalLoginKeysManagerTests predates the externalLoginKey hardening work and has no existing coverage of checkExternalLoginKey() to update, so no test changes were needed here.

…ExternalLoginKey() and cannot be changed live (OFBIZ-13519)

isExternalLoginKeyEnabled() cached the property in a static field on first read and never re-read it, so any later change made no difference until a process restart. Separately, checkExternalLoginKey() -- the consumption path wired into the default preprocessor chain used by most controller.xml files -- never called isExternalLoginKeyEnabled() at all; the flag was only ever checked at the two key-generation call sites. Together this meant an admin disabling the property got no change in behavior on either the caching or the enforcement side. Removed the permanent caching so the property is re-read on every call, and added the missing check to checkExternalLoginKey() so it short-circuits to success without touching the key when the feature is disabled.
@mridulpathak
mridulpathak merged commit 688b394 into apache:release24.09 Sep 3, 2026
5 checks passed
@mridulpathak
mridulpathak deleted the OFBIZ-13519-release24.09 branch October 18, 2026 14:22
@jacopoc

jacopoc commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

CVE-2026-82907

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants