mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-02-26 13:35:56 +00:00
Compare commits
2 commits
282bfb6c11
...
d11975ea8c
Author | SHA1 | Date | |
---|---|---|---|
|
d11975ea8c | ||
|
6248ff1c5d |
2 changed files with 1 additions and 27 deletions
|
@ -485,7 +485,7 @@ function ApiCache() {
|
|||
}
|
||||
|
||||
if (typeof duration === "string") {
|
||||
let split = duration.match(/^([\d\.,]+)\s?((?:(?!\d)\w)+)$/);
|
||||
let split = duration.match(/^([\d\.,]+)\s?([a-zA-Z]+)$/);
|
||||
|
||||
if (split.length === 3) {
|
||||
let len = parseFloat(split[1]);
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
const semver = require("semver");
|
||||
let test;
|
||||
const nodeVersion = process.versions.node;
|
||||
if (semver.satisfies(nodeVersion, ">= 18")) {
|
||||
test = require("node:test");
|
||||
} else {
|
||||
test = require("test");
|
||||
}
|
||||
const apicacheModule = require("../../server/modules/apicache/apicache.js");
|
||||
|
||||
const assert = require("node:assert");
|
||||
|
||||
test("Test ReDos - attack string", async (t) => {
|
||||
const getDuration = apicacheModule.getDuration;
|
||||
const str = "" + "00".repeat(100000) + "\u0000";
|
||||
const startTime = performance.now();
|
||||
try {
|
||||
getDuration(str);
|
||||
} catch (error) {
|
||||
// pass
|
||||
}
|
||||
const endTime = performance.now();
|
||||
const elapsedTime = endTime - startTime;
|
||||
const reDosThreshold = 9000;
|
||||
assert(elapsedTime <= reDosThreshold, `🚨 Potential ReDoS Attack! getDuration method took ${elapsedTime.toFixed(2)} ms, exceeding threshold of ${reDosThreshold} ms.`);
|
||||
});
|
Loading…
Add table
Reference in a new issue