Hard-Coded Key Used For Remember-me Token in OpencastGHSA-mh8g-hprg-8363
MEDIUMFix: opencast/opencast@1a7172cGHSA-mh8g-hprg-8363 is a medium-severity (CVSS 6.8) Hard-coded Credentials vulnerability in org.opencastproject:opencast-kernel. A fix is available for org.opencastproject:opencast-kernel — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
org.opencastproject:opencast-kernel☕org.opencastproject:opencast-kernelReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Impact
The security configuration in etc/security/mh_default_org.xml enables a remember-me cookie based on a hash created from the username, password, and an additional system key. Opencast has hard-coded this system key in the large XML file and never mentions to change this, basically ensuring that all systems use the same key:
<sec:remember-me key="opencast" user-service-ref="userDetailsService" />
This means that an attacker getting access to a remember-me token for one server can get access to all servers which allow log-in using the same credentials without ever needing the credentials. For example, a remember-me token obtained from develop.opencast.org can be used on stable.opencast.org without actually knowing the log-in credentials.
Such an attack will usually not work on different installations – assuming that safe, unique passwords are used – but it is basically guaranteed to work to get access to all machines of one cluster if a token from one machine is compromised.
Patches
This problem is fixed in Opencast 7.6 and Opencast 8.1
Workarounds
We strongly recommend updating to the patched version. Still, as a workaround for older versions, in etc/security/mh_default_org.xml, set a custom key for each server:
<sec:remember-me key="CUSTOM_RANDOM_KEY" user-service-ref="userDetailsService" />
References
- Relevant lines in the security configuration
- Spring Security Remember-Me Authentication Documentation
For more information
If you have any questions or comments about this advisory:
- Open an issue in opencast/opencast
- For security-relevant information, email us at [email protected]
Thanks
Thanks to @LukasKalbertodt for reporting the issue.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.opencastproject:opencast-kernel | all versions | 7.6org.opencastproject:opencast-kernel:7.6 |
| ☕Maven | org.opencastproject:opencast-kernel | ≥ 8.0&&< 8.1 | 8.1org.opencastproject:opencast-kernel:8.1 |
Affected Products
opencastapereoDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.opencastproject:opencast-kernel, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.opencastproject:opencast-kernel to 7.6 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-mh8g-hprg-8363 is resolved across your whole dependency graph.
Workarounds
Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.
Frequently Asked Questions
Is GHSA-mh8g-hprg-8363 in your dependencies?
Find it across Maven, including transitive dependencies.