fix: sichere Brotli-Laufzeit ab und erhöhe Patchversionen
All checks were successful
Deploy production / deploy (push) Successful in 55s
All checks were successful
Deploy production / deploy (push) Successful in 55s
This commit is contained in:
1
backend/.nvmrc
Normal file
1
backend/.nvmrc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
24.22.1
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "timeclock-backend",
|
"name": "timeclock-backend",
|
||||||
"version": "3.0.1",
|
"version": "3.0.2",
|
||||||
"description": "TimeClock v3 - Backend API für Zeiterfassung",
|
"description": "TimeClock v3 - Backend API für Zeiterfassung",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -34,5 +34,8 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^3.0.2"
|
"nodemon": "^3.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^22.23.4 || ^24.22.1 || ^26.12.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
22
backend/scripts/require-safe-node.cjs
Normal file
22
backend/scripts/require-safe-node.cjs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// CVE-2026-111497: Node's bundled Brotli decoder must include the security fix.
|
||||||
|
// Check Node versions: patched releases can still report Brotli 1.2.0.
|
||||||
|
// https://nodejs.org/en/blog/vulnerability/october-2026-security-releases
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
function requireSafeNode() {
|
||||||
|
const [major, minor, patch] = process.versions.node.split('.').map(Number);
|
||||||
|
const minimum = { 22: [23, 4], 24: [22, 1], 26: [12, 1] }[major];
|
||||||
|
const patched = minimum && (minor > minimum[0] ||
|
||||||
|
(minor === minimum[0] && patch >= minimum[1]));
|
||||||
|
|
||||||
|
if (!patched) {
|
||||||
|
throw new Error(
|
||||||
|
`CVE-2026-111497: Node.js ${process.versions.node} is not an approved patched runtime. ` +
|
||||||
|
'Use Node.js 22.23.4+, 24.22.1+ or 26.12.1+ within those release lines. ' +
|
||||||
|
'Recommended: nvm install && nvm use (see .nvmrc). Restart all server/PM2 processes after upgrading.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
requireSafeNode();
|
||||||
|
module.exports = requireSafeNode;
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
require('../scripts/require-safe-node.cjs');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
const helmet = require('helmet');
|
const helmet = require('helmet');
|
||||||
|
|||||||
12
package-lock.json
generated
12
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "timeclock",
|
"name": "timeclock",
|
||||||
"version": "3.1.1",
|
"version": "3.1.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "timeclock",
|
"name": "timeclock",
|
||||||
"version": "3.1.1",
|
"version": "3.1.3",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"backend",
|
"backend",
|
||||||
@@ -14,11 +14,14 @@
|
|||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"concurrently": "^8.2.2"
|
"concurrently": "^8.2.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^22.23.4 || ^24.22.1 || ^26.12.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"backend": {
|
"backend": {
|
||||||
"name": "timeclock-backend",
|
"name": "timeclock-backend",
|
||||||
"version": "3.0.1",
|
"version": "3.0.2",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^5.1.1",
|
"bcrypt": "^5.1.1",
|
||||||
@@ -39,6 +42,9 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^3.0.2"
|
"nodemon": "^3.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^22.23.4 || ^24.22.1 || ^26.12.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"frontend": {
|
"frontend": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "timeclock",
|
"name": "timeclock",
|
||||||
"version": "3.1.2",
|
"version": "3.1.3",
|
||||||
"description": "TimeClock v3 - Full-Stack Zeiterfassungsanwendung",
|
"description": "TimeClock v3 - Full-Stack Zeiterfassungsanwendung",
|
||||||
"private": true,
|
"private": true,
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
@@ -27,6 +27,9 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"concurrently": "^8.2.2"
|
"concurrently": "^8.2.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^22.23.4 || ^24.22.1 || ^26.12.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user