Headline
CVE-2023-26045: fix: object destructuring overwriting type parameter · NodeBB/NodeBB@ec58700
NodeBB is Node.js based forum software. Starting in version 2.5.0 and prior to version 2.8.7, due to the use of the object destructuring assignment syntax in the user export code path, combined with a path traversal vulnerability, a specially crafted payload could invoke the user export logic to arbitrarily execute javascript files on the local disk. This issue is patched in version 2.8.7. As a workaround, site maintainers can cherry pick the fix into their codebase to patch the exploit.
Expand Up
@@ -443,6 +443,10 @@ usersAPI.changePicture = async (caller, data) => {
};
usersAPI.generateExport = async (caller, { uid, type }) => {
const validTypes = ['profile’, 'posts’, ‘uploads’];
if (!validTypes.includes(type)) {
throw new Error('[[error:invalid-data]]');
}
const count = await db.incrObjectField('locks’, `export:${uid}${type}`);
if (count > 1) {
throw new Error('[[error:already-exporting]]');
Expand Down
Related news
### Impact Due to the use of the [object destructuring assignment](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) syntax in the user export code path, combined with a path traversal vulnerability, a specially crafted payload could invoke the user export logic to arbitrarily execute javascript files on the local disk. ### Patches Patched in v2.8.7 ### Workarounds Site maintainers can cherry pick ec58700f6dff8e5b4af1544f6205ec362b593092 into their codebase to patch the exploit.