Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain target file hash from public URL
-
DeliveryInfer or recover rand() PRNG state
-
ExploitCompute predicted delete_code for hash
-
ExecutionSubmit delete request with forged code
-
ImpactUnauthorized deletion of hosted file
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic PRNG selection
|
| Exploitation Conditions | Exploitation requires that the target PictShare instance run a version before 3.7.1 where getRandomString() in src/inc/core.php builds the delete_code from the non-cryptographic rand() PRNG. The attacker must know the target file's hash (exposed in public PictShare URLs) and must infer or recover the rand() PRNG state well enough to reproduce the generated delete_code - this PRNG-prediction requirement is the HIGH attack-complexity (AC:H) limiter and is the main factor constraining real-world exploitation. No authentication (PR:N) and no user interaction (UI:N) are needed against default configurations. Impact is limited to unauthorized file deletion (availability); it does not grant data disclosure. Instances on 3.7.1+ (using random_int()) are not affected, and the pre-patch info endpoint exposure of delete_code is a separate, now-fixed leakage path. |
| Impact | This is a genuine but bounded-impact authorization weakness, not a top-tier emergency. The only provided scoring signal is the vendor/NVD CVSS 4.0 vector (CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N, base 8.2), which shows network, unauthenticated, no-user-interaction exploitation but HIGH attack complexity, and impact limited strictly to availability (VA:H) - specifically unauthorized deletion of hosted files, with zero confidentiality or integrity impact (VC:N/VI:N). No EPSS score, no CISA KEV entry, and no public POC were supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The elevated 8.2 is driven mainly by the 4.0 scoring model's treatment of unauthenticated network access against a high-value impact, but the AC:H metric is doing important work here: successful exploitation requires actually predicting or recovering the PHP rand() PRNG state, which is non-trivial and server-state-dependent. Net: this is a real, patch-worthy authorization flaw (predictable delete_code lets an attacker bypass the delete token), but given a niche self-hosted product, availability-only impact, high complexity, and no exploitation/POC signals, it is a moderate priority rather than a drop-everything issue. Note the scoring covers only file deletion; the same patch also hardened the info endpoint that previously leaked the delete_code, which is a related but separately-scored exposure. |
| Exploit ScenarioDerived | An attacker who knows the public hash of a hosted file (hashes appear in PictShare URLs) analyzes the server's weak rand()-based token generation to predict the delete_code tied to that file, then submits a delete request with the guessed code to destroy the file without ever reading the code from the info endpoint. Because the PRNG is seeded and advanced predictably, an attacker able to observe or infer PRNG state can forge valid delete tokens for arbitrary hosted files. No public POC was provided, and the HIGH attack complexity reflects the effort needed to recover the PRNG state. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
PictShare versions before 3.7.1 generate the per-file delete_code authorization token using PHP's non-cryptographic rand() PRNG, allowing an attacker who knows a hosted file's hash to predict or infer valid delete codes and delete other users' uploads without authorization. The vulnerability is remotely reachable and requires no authentication or user interaction (CVSS:4.0 AV:N/PR:N/UI:N), but exploitation is constrained by HIGH attack complexity (AC:H) because the attacker must reconstruct the PRNG state; the resulting impact is availability-only (VA:H) and grants no data disclosure. No public exploit code was identified at time of analysis and there is no CISA KEV listing; vendor-released patch: 3.7.1.
RemediationAI
Upgrade to PictShare 3.7.1 or later, the vendor-released patch that swaps rand() for random_int() and routes both delete paths through isValidDeleteCode(); apply the upstream commit ce5fc474 if you track source directly, and take the release from https://github.com/HaschekSolutions/pictshare/releases/tag/v3.7.1 (advisory: https://www.vulncheck.com/advisories/pictshare-predictable-delete-code-via-rand). Upgrading also closes the companion information leak, since API::info() now returns only whitelisted metadata (mime, size, hash, sha1, uploaded, type, hashes, created) instead of the full meta.json containing delete_code and uploader details, and empty codes such as /delete_/<hash> or /delete_0/<hash> no longer succeed - including on hashes with no stored delete_code, where the Docker default MASTER_DELETE_CODE='' previously opened a bypass. If immediate patching is not possible, compensating controls are: put the upload/delete endpoints behind an authenticating reverse proxy or deny external access entirely (trade-off: breaks the anonymous upload model, and delete links on existing files remain guessable to anyone with proxy access); and if you have set MASTER_DELETE_CODE or MASTER_DELETE_IP, remember these are master credentials that bypass all per-file codes and should be rotated or unset. There is no way to retroactively re-key delete codes for existing files without patch-level code changes, so deleting and re-uploading sensitive content after upgrading is the only way to fully invalidate previously predictable tokens.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
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-338 (Use of Cryptographically Weak Pseudo-Random Number Generator), located in getRandomString() in src/inc/core.php of the PHP-based PictShare image/file hosting application. That function built the delete_code by indexing a keyspace with rand(0, $max) - PHP's deterministic, non-cryptographic Mersenne Twister PRNG - so tokens are a function of a seedable, recoverable generator state rather than OS entropy. Because PictShare exposes file hashes in public URLs, an attacker with a target hash can attempt to reproduce the sequence and submit candidate codes to the delete endpoint. The upstream fix (commit ce5fc474, released as v3.7.1) replaces rand() with random_int(), which draws from the CSPRNG, and consolidates authorization into a new isValidDeleteCode() helper that rejects empty or non-string codes and compares with hash_equals() to avoid timing side channels and empty-code bypasses. The same commit additionally hardens API::info() so meta.json fields - delete_code, delete_url, uploader IP/useragent/remote_port, original_filename, and view statistics - are no longer returned, whitelisting only mime, size, size_human, hash, sha1, uploaded, type, hashes, and created. The CPE cpe:2.3:a:hascheksolutions:pictshare:* identifies all releases prior to 3.7.1 as affected. The pre-3.7.1 info-endpoint leakage of delete_code is a distinct, separately fixed disclosure path and is not required for this attack.
Know when Pictshare 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
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N), but recovering the rand() PRNG state to forge a valid code makes it AC:H; impact is file deletion so A:H with C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
PictShare before version 3.7.1 contains a weak randomness vulnerability where the getRandomString() function uses the non-cryptographic rand() PRNG to generate the delete_code authorization token in src/inc/core.php. Attackers can predict or infer the PRNG state to guess valid delete_code values and perform unauthorized deletion of hosted files without needing to read the code from the info endpoint.
Executive ViewAI
PictShare deployments running versions prior to 3.7.1 contain a high-severity weakness that lets an unauthenticated attacker delete files hosted by other users, making it a data availability and integrity concern for any team relying on the platform for shared uploads. Because no credentials or user interaction are required, any internet-exposed instance is theoretically reachable, though exploitation requires reconstructing the underlying random number generator state and yields no data disclosure. Leadership should care primarily about loss of hosted content and the operational disruption of restoring deleted uploads; a vendor fix (3.7.1) is already available.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
pictshare v1.5 is affected by a Cross Site Scripting (XSS) vulnerability in api/info.php. Rated medium severity (CVSS 6.
Unauthenticated information disclosure in PictShare before 3.7.1 lets any remote party who knows a file's publicly visib
EUVD-2026-91072
GHSA-6654-r2c2-m62r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB