{"id":"CVE-2021-21248","details":"OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, there is a critical vulnerability involving the build endpoint parameters. InputSpec is used to define parameters of a Build spec. It does so by using dynamically generated Groovy classes. A user able to control job parameters can run arbitrary code on OneDev's server by injecting arbitrary Groovy code. The ultimate result is in the injection of a static constructor that will run arbitrary code. For a full example refer to the referenced GHSA. This issue was addressed in 4.0.3 by escaping special characters such as quote from user input.","aliases":["GHSA-gwp4-5498-hv5f"],"modified":"2026-08-07T16:49:51.832594Z","published":"2021-01-15T21:15:13.663Z","references":[{"type":"ADVISORY","url":"https://github.com/theonedev/onedev/security/advisories/GHSA-gwp4-5498-hv5f"},{"type":"FIX","url":"https://github.com/theonedev/onedev/commit/39d95ab8122c5d9ed18e69dc024870cae08d2d60"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/theonedev/onedev","events":[{"introduced":"0"},{"fixed":"4bd71941974a1b077e955616d7ba3da6fd21670c"},{"fixed":"39d95ab8122c5d9ed18e69dc024870cae08d2d60"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"4.0.3"}],"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:onedev_project:onedev:*:*:*:*:*:*:*:*"}}],"versions":["v4.0.2","v4.0.1","v4.0.0","v3.2.4","v3.2.3","v3.2.2","v3.2.1","v3.2.0","v3.1.2","v3.1.1","v3.1.0","v3.0.10","v3.0.9","v3.0.8","v3.0.7","v3.0.6","v3.0.5","v3.0.4","2.0.5","2.0.4","2.0.0","2.0-beta-build120","2.0-beta-build119"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-21248.json","vanir_signatures_modified":"2026-08-07T16:49:51Z","vanir_signatures":[{"id":"CVE-2021-21248-0aa897d3","signature_type":"Line","signature_version":"v1","source":"https://github.com/theonedev/onedev/commit/39d95ab8122c5d9ed18e69dc024870cae08d2d60","target":{"file":"server-core/src/main/java/io/onedev/server/model/support/inputspec/InputSpec.java"},"deprecated":false,"digest":{"line_hashes":["328517268871830018930557871912003146622","20910458844816322456253282477776400339","96439450927759822255062807841622656105","13792724726599233070052788992702438481"],"threshold":0.9}},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/theonedev/onedev/commit/39d95ab8122c5d9ed18e69dc024870cae08d2d60","target":{"file":"server-core/src/main/java/io/onedev/server/model/support/inputspec/textinput/TextInput.java","function":"getPropertyDef"},"deprecated":false,"digest":{"function_hash":"70220704029479522527471992683922055107","length":538},"id":"CVE-2021-21248-0e5cc867"},{"deprecated":false,"digest":{"line_hashes":["111338269377089353463508498149491676445","139430799199400221570926262484523590448","175587402203147316825303261968781122054","325175320828442439627117363541638942758","877509100382475066525309626866558274","126400034584215042413127943485952889680","208728838931797298297312743535911880123"],"threshold":0.9},"id":"CVE-2021-21248-3293c5b8","signature_type":"Line","signature_version":"v1","source":"https://github.com/theonedev/onedev/commit/39d95ab8122c5d9ed18e69dc024870cae08d2d60","target":{"file":"server-core/src/main/java/io/onedev/server/model/support/inputspec/textinput/TextInput.java"}}]}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}