Skip to content

Commit 63ed647

Browse files
committed
fix(formdata): updated busboy to 1.6.0 to remove vulnerability
1 parent 553c0bf commit 63ed647

File tree

3 files changed

+10599
-11924
lines changed

3 files changed

+10599
-11924
lines changed

lib/middleware/formData.js

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
import Busboy from 'busboy';
22

3-
const getConfig = event => {
4-
return {
5-
headers: {
6-
'content-type': event.headers['content-type'] || event.headers['Content-Type'],
7-
},
8-
};
9-
};
10-
113
export const parseMultipartFormData = async request => {
124
const { event } = request;
135

@@ -16,12 +8,15 @@ export const parseMultipartFormData = async request => {
168
fields: {},
179
};
1810

19-
const busboy = new Busboy(getConfig(event));
11+
const busboyHeaders = { ...request.headers };
12+
busboyHeaders['content-type'] = event.headers['content-type'] || event.headers['Content-Type'];
13+
14+
const busboy = Busboy({ headers: busboyHeaders });
2015

2116
return new Promise((resolve, reject) => {
2217
const buffers = [];
23-
24-
busboy.on('file', (fieldName, file, fileName, encoding, mimeType) => {
18+
busboy.on('file', (name, file, info) => {
19+
const { filename, encoding, mimeType } = info;
2520
const userSubmittedFile = {};
2621

2722
file.on('data', data => {
@@ -33,10 +28,10 @@ export const parseMultipartFormData = async request => {
3328
file.on('end', () => {
3429
if (buffers.length) {
3530
userSubmittedFile.content = Buffer.concat(buffers);
36-
userSubmittedFile.fileName = fileName;
31+
userSubmittedFile.fileName = filename;
3732
userSubmittedFile.contentType = mimeType;
3833
userSubmittedFile.encoding = encoding;
39-
userSubmittedFile.fieldName = fieldName;
34+
userSubmittedFile.fieldName = name;
4035
formData.files.push(userSubmittedFile);
4136
}
4237
});
@@ -50,7 +45,7 @@ export const parseMultipartFormData = async request => {
5045
reject(error);
5146
});
5247

53-
busboy.on('finish', () => {
48+
busboy.on('close', () => {
5449
request.addRequestData('formData', formData);
5550
resolve();
5651
});

0 commit comments

Comments
 (0)