mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
fix: formidable dependency vulnerable to arbitrary (#7533)
* fix: dependabot uses the correct labels * fix: issue #7463 * fix: update to the latest version of formidable
This commit is contained in:
Generated
+8
-6
@@ -36,7 +36,7 @@
|
|||||||
"eslint": "^10.0.3",
|
"eslint": "^10.0.3",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"formdata-node": "^5.0.1",
|
"formdata-node": "^5.0.1",
|
||||||
"formidable": "^2.1.5",
|
"formidable": "^3.2.4",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"get-stream": "^9.0.1",
|
"get-stream": "^9.0.1",
|
||||||
"globals": "^17.4.0",
|
"globals": "^17.4.0",
|
||||||
@@ -7094,16 +7094,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/formidable": {
|
"node_modules/formidable": {
|
||||||
"version": "2.1.5",
|
"version": "3.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
|
||||||
"integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==",
|
"integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@paralleldrive/cuid2": "^2.2.2",
|
"@paralleldrive/cuid2": "^2.2.2",
|
||||||
"dezalgo": "^1.0.4",
|
"dezalgo": "^1.0.4",
|
||||||
"once": "^1.4.0",
|
"once": "^1.4.0"
|
||||||
"qs": "^6.11.0"
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://ko-fi.com/tunnckoCore/commissions"
|
"url": "https://ko-fi.com/tunnckoCore/commissions"
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@
|
|||||||
"eslint": "^10.0.3",
|
"eslint": "^10.0.3",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"formdata-node": "^5.0.1",
|
"formdata-node": "^5.0.1",
|
||||||
"formidable": "^2.1.5",
|
"formidable": "^3.2.4",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"get-stream": "^9.0.1",
|
"get-stream": "^9.0.1",
|
||||||
"globals": "^17.4.0",
|
"globals": "^17.4.0",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import http2 from 'http2';
|
|||||||
import stream from 'stream';
|
import stream from 'stream';
|
||||||
import getStream, { getStreamAsBuffer } from 'get-stream';
|
import getStream, { getStreamAsBuffer } from 'get-stream';
|
||||||
import { Throttle } from 'stream-throttle';
|
import { Throttle } from 'stream-throttle';
|
||||||
import formidable from 'formidable';
|
import { IncomingForm } from 'formidable';
|
||||||
import selfsigned from 'selfsigned';
|
import selfsigned from 'selfsigned';
|
||||||
|
|
||||||
export const SERVER_HANDLER_STREAM_ECHO = (req, res) => req.pipe(res);
|
export const SERVER_HANDLER_STREAM_ECHO = (req, res) => req.pipe(res);
|
||||||
@@ -124,7 +124,7 @@ export const stopAllTrackedHTTPServers = async (timeout = 10000) => {
|
|||||||
|
|
||||||
export const handleFormData = (req) => {
|
export const handleFormData = (req) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const form = new formidable.IncomingForm();
|
const form = new IncomingForm();
|
||||||
|
|
||||||
form.parse(req, (err, fields, files) => {
|
form.parse(req, (err, fields, files) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import os from 'os';
|
|||||||
import path from 'path';
|
import path from 'path';
|
||||||
import devNull from 'dev-null';
|
import devNull from 'dev-null';
|
||||||
import FormDataLegacy from 'form-data';
|
import FormDataLegacy from 'form-data';
|
||||||
import formidable from 'formidable';
|
import { IncomingForm } from 'formidable';
|
||||||
import { FormData as FormDataPolyfill, Blob as BlobPolyfill } from 'formdata-node';
|
import { FormData as FormDataPolyfill, Blob as BlobPolyfill } from 'formdata-node';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import multer from 'multer';
|
import multer from 'multer';
|
||||||
@@ -2285,7 +2285,7 @@ describe('supports http with nodejs', () => {
|
|||||||
|
|
||||||
const server = await startHTTPServer(
|
const server = await startHTTPServer(
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
const receivedForm = new formidable.IncomingForm();
|
const receivedForm = new IncomingForm();
|
||||||
|
|
||||||
assert.ok(req.rawHeaders.some((header) => header.toLowerCase() === 'content-length'));
|
assert.ok(req.rawHeaders.some((header) => header.toLowerCase() === 'content-length'));
|
||||||
|
|
||||||
@@ -2314,15 +2314,15 @@ describe('supports http with nodejs', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
assert.deepStrictEqual(response.data.fields, { foo: 'bar' });
|
assert.deepStrictEqual(response.data.fields, { foo: ['bar'] });
|
||||||
|
|
||||||
assert.strictEqual(response.data.files.file1.mimetype, 'image/jpeg');
|
assert.strictEqual(response.data.files.file1[0].mimetype, 'image/jpeg');
|
||||||
assert.strictEqual(response.data.files.file1.originalFilename, 'temp/bar.jpg');
|
assert.strictEqual(response.data.files.file1[0].originalFilename, 'temp/bar.jpg');
|
||||||
assert.strictEqual(response.data.files.file1.size, 3);
|
assert.strictEqual(response.data.files.file1[0].size, 3);
|
||||||
|
|
||||||
assert.strictEqual(response.data.files.fileStream.mimetype, 'image/png');
|
assert.strictEqual(response.data.files.fileStream[0].mimetype, 'image/png');
|
||||||
assert.strictEqual(response.data.files.fileStream.originalFilename, 'axios.png');
|
assert.strictEqual(response.data.files.fileStream[0].originalFilename, 'axios.png');
|
||||||
assert.strictEqual(response.data.files.fileStream.size, stat.size);
|
assert.strictEqual(response.data.files.fileStream[0].size, stat.size);
|
||||||
} finally {
|
} finally {
|
||||||
await stopHTTPServer(server);
|
await stopHTTPServer(server);
|
||||||
}
|
}
|
||||||
@@ -2358,10 +2358,10 @@ describe('supports http with nodejs', () => {
|
|||||||
maxRedirects: 0,
|
maxRedirects: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
assert.deepStrictEqual(data.fields, { foo1: 'bar1', foo2: 'bar2' });
|
assert.deepStrictEqual(data.fields, { foo1: ['bar1'], foo2: ['bar2'] });
|
||||||
assert.deepStrictEqual(typeof data.files.file1, 'object');
|
assert.deepStrictEqual(typeof data.files.file1[0], 'object');
|
||||||
|
|
||||||
const { size, mimetype, originalFilename } = data.files.file1;
|
const { size, mimetype, originalFilename } = data.files.file1[0];
|
||||||
|
|
||||||
assert.deepStrictEqual(
|
assert.deepStrictEqual(
|
||||||
{ size, mimetype, originalFilename },
|
{ size, mimetype, originalFilename },
|
||||||
@@ -3270,8 +3270,8 @@ describe('supports http with nodejs', () => {
|
|||||||
|
|
||||||
assert.deepStrictEqual(data, {
|
assert.deepStrictEqual(data, {
|
||||||
fields: {
|
fields: {
|
||||||
x: 'foo',
|
x: ['foo'],
|
||||||
y: 'bar',
|
y: ['bar'],
|
||||||
},
|
},
|
||||||
files: {},
|
files: {},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user