T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/utils/validator.js:12- Finding
Arbitrary Local File Upload Through Unrestricted File Input
- Content
View full analysis
{ const fileStats = fs.statSync(filename); const totalSize = fileStats.size; let uploadedSize = 0; let settled = false; const fileStream = fs.createReadStream(filename); const uploadHeaders = Object.assign({}, headers); uploadHeaders["Content-Length"] = String(totalSize); if (!uploadHeaders["Content-Type"]) { uploadHeaders["Content-Type"] = "application/octet-stream"; } const options = { host: url.hostname, path: url.pathname + url.search, method: "PUT", headers: uploadHeaders, }; const req = https.request( { ...options, timeout: constants.REQUEST_TIMEOUT }, (res) => { ``` ### Technical Analysis The local-file validator only checks whether the supplied path refers to a r ...[truncated 1864 chars]- Remediation
View remediation
