Skip to main content

Sakai LMS CVE-2025-62710

MEDIUM
Predictable Seed in Pseudo-Random Number Generator (PRNG) (CWE-337)
2025-10-22 security-advisories@github.com
5.9
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain exported or at-rest ciphertext
  2. Delivery
    Estimate server start-time seed window
  3. Exploit
    Brute-force reduced PRNG key space
  4. Execution
    Reconstruct AES256 serverSecretKey
  5. Impact
    Decrypt protected data offline

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Unpredictable PRNG seeds
Exploitation Conditions

Exploitation requires two concrete prerequisites that significantly limit practicality: (1) the attacker must already possess ciphertext produced by EncryptionUtilityServiceImpl - specifically exported strings or at-rest values encrypted with the AES256TextEncryptor serverSecretKey - not merely network reachability of Sakai; and (2) the attacker must be able to approximate the java.util.Random seed, feasible because the PRNG is seeded from predictable state such as the server start-time window. The weakness is present by default in affected versions (no special configuration enables it), but the need for prior ciphertext access plus successful seed estimation is what drives the high attack complexity and keeps real-world risk below the raw network-vector reading. Confidentiality of previously-encrypted data remains at risk even after patching unless keys are rotated and old ciphertext is re-encrypted.

Impact

This is a genuine but comparatively low-urgency cryptographic weakness rather than a widely-exploitable critical flaw. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, 5.9 Medium) correctly signals the limiting factor: AC:H reflects that exploitation is not trivial - the attacker must both obtain ciphertext and successfully approximate the java.util.Random seed (e.g. the server start-time window) to reconstruct the AES256 serverSecretKey. Impact is confined to confidentiality (C:H, I:N, A:N). The multi-source signals are consistent and point to low real-world urgency: EPSS is 0.20% (9th percentile), the CVE is NOT in CISA KEV, and no public exploit code is referenced - so there is no public exploit identified at time of analysis. The PR:N rating is technically defensible for the cryptographic flaw itself, but note a tension: the description states the attacker must first 'obtain ciphertexts (e.g., exported or at-rest strings)', which in practice presupposes some prior access to exported data or the datastore - a prerequisite not captured by the PR:N/AV:N vector alone and worth weighing when prioritizing. Overall: a real defense-in-depth issue meriting routine patching, not emergency response, absent evidence of active exploitation.

Exploit ScenarioDerived

An attacker who has already obtained Sakai-encrypted data (for example an exported file or at-rest strings protected by EncryptionUtilityServiceImpl) estimates the server's startup time window to constrain the java.util.Random seed, then brute-forces the drastically reduced key space to reconstruct the serverSecretKey and decrypt the protected data offline. No public proof-of-concept is referenced, and the high attack complexity (seed approximation plus ciphertext access) makes this a targeted rather than opportunistic attack.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 08, 2026

Sakai LMS versions prior to 23.5 and 25.0 generate the server-side AES encryption key (serverSecretKey) for EncryptionUtilityServiceImpl using Apache Commons RandomStringUtils backed by the non-cryptographic java.util.Random PRNG, so the key can be reconstructed by an attacker who holds ciphertext and can approximate the PRNG seed from predictable server state such as the start-time window; successful key recovery allows decryption of at-rest or exported strings protected by the service. The flaw is reachable by unauthenticated remote attackers per the CVSS vector (AV:N/AC:H/PR:N/UI:N), but the high attack complexity reflects two real prerequisites - prior possession of ciphertext produced by the service and successful seed estimation - rather than simple network reachability. EPSS is 0.20% (9th percentile), no public exploit code and no CISA KEV entry were identified at time of analysis, making this a genuine but comparatively low-urgency cryptographic weakness; vendor patches are available in Sakai 23.5, 25.0, and trunk (SAK-49866).

RemediationAI

Upgrade to Sakai 23.5 or 25.0 (or trunk containing SAK-49866, commit bde070104b1de01f4a6458dca6d9e0880a0e3c04) as the primary fix, per the advisory at https://github.com/sakaiproject/sakai/security/advisories/GHSA-gr7h-xw4f-wh86. Patching alone is insufficient: because the old serverSecretKey was generated predictably and any ciphertext encrypted under it remains decryptable, administrators must rotate the key and re-encrypt all previously protected values (exported strings and at-rest data produced by EncryptionUtilityServiceImpl) after upgrading - the trade-off is that re-encryption requires access to the plaintext source and careful sequencing to avoid leaving stale ciphertext readable. If immediate upgrade is impossible, compensating controls are limited because the weak PRNG is on the default code path: restrict who can obtain or exfiltrate ciphertext produced by this service, limit access to database dumps, exports, and configuration/backup artifacts containing encrypted values, and isolate the Sakai host so that an attacker cannot combine ciphertext access with server-state fingerprints such as precise start-time information; each of these reduces but does not eliminate risk, and none removes the need to rotate the key once the patch is applied. No public exploit code or CISA KEV activity was identified at time of analysis, so prioritization can follow normal patching cycles for internet-reachable Sakai instances despite the network-vector AV:N rating.

Affected Packages

maven org.sakaiproject.kernel:sakai-kernel-impl no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in maven

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-337 (Predictable Seed in Pseudo-Random Number Generator). Sakai's kernel-impl module, in org.sakaiproject.util.impl.EncryptionUtilityServiceImpl, called RandomStringUtils.random(keyLength, useLetters, useNumbers) with no explicit Random instance, which causes Apache Commons Lang to fall back to its default java.util.Random. java.util.Random is a 48-bit linear congruential generator whose output is deterministically derivable from its seed, and because the seed is derived from time-based JVM state, an attacker who knows or narrows the server start-time window can enumerate candidate keys and test them against known ciphertext. The generated string is used as the password for Spring Security Crypto's AES256TextEncryptor, so key recovery directly yields plaintext of any value encrypted by this service. The upstream fix (commit bde070104b1de01f4a6458dca6d9e0880a0e3c04, GHSA-gr7h-xw4f-wh86) replaces the implicit default PRNG with an explicit java.security.SecureRandom and passes it into RandomStringUtils.random(...); the same commit also hardens the unrelated UserProcessor SIS path, replacing RandomStringUtils.randomAlphanumeric(9) with a 12-character SecureRandom-based value, and removes a RandomStringUtils import from ProfileController. The affected CPE is cpe:2.3:a:sakailms:sakai:*:*:*:*:*:*:*:*, and the Maven coordinates are org.sakaiproject.kernel:sakai-kernel-impl (advisory data lists vulnerable ranges up to <= 23.3).

Know when Sakai gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

AC:H because exploitation needs both access to ciphertext and successful PRNG-seed approximation; PR:N as the crypto flaw itself needs no auth; impact is confidentiality-only (C:H, I:N, A:N).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionNVD

Sakai is a Collaboration and Learning Environment. Prior to versions 23.5 and 25.0, EncryptionUtilityServiceImpl initialized an AES256TextEncryptor password (serverSecretKey) using RandomStringUtils with the default java.util.Random. java.util.Random is a non‑cryptographic PRNG and can be predicted from limited state/seed information (e.g., start time window), substantially reducing the effective search space of the generated key. An attacker who can obtain ciphertexts (e.g., exported or at‑rest strings protected by this service) and approximate the PRNG seed can feasibly reconstruct the serverSecretKey and decrypt affected data. SAK-49866 is patched in Sakai 23.5, 25.0, and trunk.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
open-source LMS, largely confined to higher-education institutions
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)NVD

cpe:2.3:a:sakailms:sakai:*:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy