A critical flaw in DataLinkDC's Dinky (CVSS 9.8) lets anyone who can reach the service's HTTP port write arbitrary files using a token that ships hardcoded in every deployment.
What Is It
According to the GitHub security advisory (GHSA-2p66-w3p3-5226) and the accompanying report in DataLinkDC/dinky issue #4566, Dinky's POST /download/uploadFromRsByLocal handler passes the caller-supplied path parameter directly to new File(path) and file.transferTo(dest) with no path validation. Those same sources describe the route as marked @SaIgnore, with /download/** excluded from the Sa-Token interceptor, leaving a header equality check against a dinkyToken value as the only remaining guard. The report identifies that token's default, efda1551-7958-4e0f-80a8-dfd107df3e38, as hardcoded in source and shipped to every deployment.
Tracked as CWE-434 (unrestricted file upload), the issue carries a CVSS 3.1 base score of 9.8 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) and a CVSS 4.0 score of 9.3.
Why It Matters
Anyone who can reach Dinky's HTTP port (8888 by default) and supplies the hardcoded token can write arbitrary files as the Dinky service account. Per the advisory and issue report, the default Docker image runs on 8888 with no proxy or authentication and chmod 777 on /opt/dinky, leaving the application's own classpath, launch scripts, and static assets writable.
The issue report describes two impacts. Overwriting /opt/dinky/config/static/index.html is reported to serve attacker JavaScript to any administrator who subsequently loads the web UI. Writing /opt/dinky/org/dinky/Dinky.class is reported to execute attacker code as the Dinky service account at the next JVM start, via a classpath shadow launched by script/bin/auto.sh. Both are drawn from the reporter's account rather than independent reproduction in this source material.
The same report indicates the blast radius has a floor: writes are said to run as uid 9999 (flink), not root, so paths such as /etc, /root, /home, and /usr are refused. That constrains the reach of the write without reducing the severity of what remains writable.
What's Vulnerable
- Vendor/product: DataLinkDC Dinky
- Affected versions: all versions up to and including 1.2.5 (semver), including v1.2.5; the current release. The issue report also states the development branch carries the same code.
Default Docker deployments are the worst case: port 8888 exposed, no proxy, no authentication, world-writable install directory.
Patch Status
The supplied NVD record lists the CVE as Received (published 2026-08-06) and does not identify a fixed version or specify required remediation actions. No CISA KEV entry was supplied, so there is no confirmation of active exploitation in this source material. Consult the vendor's GitHub security advisory below for fix availability.
Sources
- NVD, CVE-2026-70558: https://nvd.nist.gov/vuln/detail/CVE-2026-70558
- GitHub Security Advisory GHSA-2p66-w3p3-5226: https://github.com/DataLinkDC/dinky/security/advisories/GHSA-2p66-w3p3-5226
- DataLinkDC/dinky issue #4566: https://github.com/DataLinkDC/dinky/issues/4566
- DataLinkDC/dinky repository: https://github.com/DataLinkDC/dinky