upload-safety 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/asf-media.d.ts +22 -0
- package/dist/asf-media.d.ts.map +1 -0
- package/dist/asf-media.js +159 -0
- package/dist/asf-media.js.map +1 -0
- package/dist/media-formats.d.ts +7 -1
- package/dist/media-formats.d.ts.map +1 -1
- package/dist/media-formats.js +42 -1
- package/dist/media-formats.js.map +1 -1
- package/dist/photo-metadata.d.ts.map +1 -1
- package/dist/photo-metadata.js +13 -3
- package/dist/photo-metadata.js.map +1 -1
- package/dist/upload-allowlist.d.ts +1 -1
- package/dist/upload-allowlist.d.ts.map +1 -1
- package/dist/upload-allowlist.js +17 -0
- package/dist/upload-allowlist.js.map +1 -1
- package/dist/video-formats.d.ts +16 -7
- package/dist/video-formats.d.ts.map +1 -1
- package/dist/video-formats.js +113 -9
- package/dist/video-formats.js.map +1 -1
- package/package.json +1 -1
- package/src/asf-media.ts +184 -0
- package/src/media-formats.ts +45 -1
- package/src/photo-metadata.ts +13 -3
- package/src/upload-allowlist.ts +19 -2
- package/src/video-formats.ts +120 -9
package/README.md
CHANGED
|
@@ -48,7 +48,7 @@ Every check fails closed: a part it cannot read is a refusal, not a pass.
|
|
|
48
48
|
- **Zero runtime dependencies.** Only `node:zlib` and `node:crypto`. Nothing to audit but this package.
|
|
49
49
|
- **Typed reasons.** Each refusal is one of seven string literals, so a `Record<UploadRejection, string>` of messages is checked by the compiler.
|
|
50
50
|
- **Fast enough to run inline.** Synchronous; 647 real documents up to 20 MB each took at most 65 ms on a laptop.
|
|
51
|
-
- **Tested against crafted files.**
|
|
51
|
+
- **Tested against crafted files.** 422 tests build malformed ZIPs, tars, compound files, PDFs, RTF and media files byte by byte, next to real Office, PDF, photo, audio and video files.
|
|
52
52
|
|
|
53
53
|
Full documentation, with a page per format: **[upload-safety.simonhalimonov.com](https://upload-safety.simonhalimonov.com)**.
|
|
54
54
|
|
|
@@ -143,8 +143,9 @@ app.post( '/upload', upload.single( 'file' ), ( req, res ) => {
|
|
|
143
143
|
| Photos | `jpg` `jpeg` `png` `webp` | Structure; EXIF (GPS included), XMP, IPTC, comments and any other metadata segment or chunk are removed, the orientation is kept |
|
|
144
144
|
| HEIF photos | `heic` `heif` `avif` | Brands; EXIF and XMP items are overwritten in place, since dropping them would shift the offsets the file is built on. The orientation lives in the image properties and stays. Image sequences, such as animated AVIF, are refused |
|
|
145
145
|
| Other images | `gif` `bmp` `ico` | GIF: comments, XMP and other application extensions removed, anything after the end cut off. BMP and ICO: headers |
|
|
146
|
-
| Audio | `mp3` `wav` `flac` `ogg` `m4a` | Frame and chunk structure; ID3, APE, RIFF INFO, Vorbis comment and picture blocks and iTunes tags removed. Ogg pages are checked by their CRC, their comments stay |
|
|
147
|
-
| Video | `mp4` `mov` `webm` | Box or
|
|
146
|
+
| Audio | `mp3` `aac` `wav` `flac` `ogg` `m4a` | Frame and chunk structure (every AAC frame); ID3, APE, RIFF INFO, Vorbis comment and picture blocks and iTunes tags removed. Ogg pages are checked by their CRC, their comments stay |
|
|
147
|
+
| Video | `mp4` `mov` `webm` `mkv` `avi` | Box, element or chunk structure; `udta`, `meta`, XMP and `uuid` boxes (iPhone location included), Matroska tags, attachments and title, AVI INFO, XMP and vendor chunks blanked in place, so no offset moves |
|
|
148
|
+
| Windows Media | `wma` `wmv` | ASF object structure and the stream type; title, author and tag objects blanked in place. Script commands, which make Windows Media Player open URLs, are refused as `macros`; DRM and signatures, which carry license URLs it opens, as `encrypted`. Opt-in |
|
|
148
149
|
| Text | `csv` `txt` | No binary data (UTF-8, UTF-16 with a byte order mark, or a Windows code page); in CSV no cell that starts like a formula (`=`, `+`, `-`, `@`) and calls a function or DDE. Numbers such as `-5` or `+49 (30) 1234` pass |
|
|
149
150
|
| Markdown | `md` | As text. Opt-in |
|
|
150
151
|
| RTF | `rtf` | Refused on any embedded or linked object (`\obj…`), attached template, data store, or DDE field, however it is spelled. Opt-in |
|
|
@@ -160,7 +161,7 @@ Each format has a risk level in `FORMAT_RISK`. Only `low` formats are in the def
|
|
|
160
161
|
| Risk | Formats | Why |
|
|
161
162
|
| - | - | - |
|
|
162
163
|
| `low` | documents, photos and other images, audio, video, `csv`, `txt` | Read in full; nothing in them runs once the checks pass |
|
|
163
|
-
| `elevated` | `md`, `rtf`, `zip`, `tar`, `gz`, `tgz` | Read in full, but RTF is a common malware carrier whose reader in Word is lenient, Markdown becomes HTML when rendered, and archives get unpacked, and their files keep their metadata |
|
|
164
|
+
| `elevated` | `md`, `rtf`, `wma`, `wmv`, `zip`, `tar`, `gz`, `tgz` | Read in full, but RTF is a common malware carrier whose reader in Word is lenient, Windows Media files are opened by a player with a history of exploits through them, Markdown becomes HTML when rendered, and archives get unpacked, and their files keep their metadata |
|
|
164
165
|
| `unchecked` | `rar`, `7z` | Reading them needs a decompressor this package does not have, so anything can be inside. Serve them only as downloads, ideally after a virus scan |
|
|
165
166
|
|
|
166
167
|
```ts
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks the structure of WMA and WMV files (Microsoft ASF) and removes their metadata (title,
|
|
3
|
+
* author, WM/ tags, cover pictures) without moving a byte. The metadata objects are overwritten
|
|
4
|
+
* in place with Padding Objects of the same size and a zeroed payload.
|
|
5
|
+
*
|
|
6
|
+
* Refused: a Script Command Object makes Windows Media Player open URLs, and the DRM objects
|
|
7
|
+
* carry license acquisition URLs that it opens too (Trojan.Wimad); DRM content cannot be checked
|
|
8
|
+
* either.
|
|
9
|
+
*
|
|
10
|
+
* Limitation: markers, the file creation date and the codec data are kept.
|
|
11
|
+
*/
|
|
12
|
+
export interface AsfInspection {
|
|
13
|
+
verdict: 'valid' | 'macros' | 'encrypted' | 'mismatch';
|
|
14
|
+
/** The cleaned file when the verdict is `valid` (the input itself when nothing changed), else null. */
|
|
15
|
+
bytes: Buffer | null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Checks an ASF file as a WMA (`video` false) or WMV (`video` true) and blanks its metadata.
|
|
19
|
+
* Never throws.
|
|
20
|
+
*/
|
|
21
|
+
export declare function inspectAsf(content: Buffer, video: boolean): AsfInspection;
|
|
22
|
+
//# sourceMappingURL=asf-media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asf-media.d.ts","sourceRoot":"","sources":["../src/asf-media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+DH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;IACvD,uGAAuG;IACvG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AA8BD;;;GAGG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAI,aAAa,CAwE3E"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks the structure of WMA and WMV files (Microsoft ASF) and removes their metadata (title,
|
|
3
|
+
* author, WM/ tags, cover pictures) without moving a byte. The metadata objects are overwritten
|
|
4
|
+
* in place with Padding Objects of the same size and a zeroed payload.
|
|
5
|
+
*
|
|
6
|
+
* Refused: a Script Command Object makes Windows Media Player open URLs, and the DRM objects
|
|
7
|
+
* carry license acquisition URLs that it opens too (Trojan.Wimad); DRM content cannot be checked
|
|
8
|
+
* either.
|
|
9
|
+
*
|
|
10
|
+
* Limitation: markers, the file creation date and the codec data are kept.
|
|
11
|
+
*/
|
|
12
|
+
/** Bounds far above real files that keep a crafted one cheap. */
|
|
13
|
+
const MAX_TOP_LEVEL_OBJECTS = 1000;
|
|
14
|
+
const MAX_HEADER_OBJECTS = 10_000;
|
|
15
|
+
const GUID_LENGTH = 16;
|
|
16
|
+
const OBJECT_HEADER = GUID_LENGTH + 8;
|
|
17
|
+
/** Header Object: object header, u32 number of objects, two reserved bytes. */
|
|
18
|
+
const HEADER_OBJECT_PREFIX = OBJECT_HEADER + 6;
|
|
19
|
+
/** Header Extension payload: reserved GUID, u16 reserved, u32 data size. */
|
|
20
|
+
const EXTENSION_PREFIX = GUID_LENGTH + 2 + 4;
|
|
21
|
+
/** Converts the textual GUID of the ASF specification to its on-disk byte order (first three groups little-endian). */
|
|
22
|
+
function guid(text) {
|
|
23
|
+
const hex = text.replaceAll('-', '');
|
|
24
|
+
const bytes = Buffer.from(hex, 'hex');
|
|
25
|
+
bytes.subarray(0, 4).reverse();
|
|
26
|
+
bytes.subarray(4, 6).reverse();
|
|
27
|
+
bytes.subarray(6, 8).reverse();
|
|
28
|
+
return bytes;
|
|
29
|
+
}
|
|
30
|
+
const HEADER_OBJECT = guid('75B22630-668E-11CF-A6D9-00AA0062CE6C');
|
|
31
|
+
const DATA_OBJECT = guid('75B22636-668E-11CF-A6D9-00AA0062CE6C');
|
|
32
|
+
const FILE_PROPERTIES_OBJECT = guid('8CABDCA1-A947-11CF-8EE4-00C00C205365');
|
|
33
|
+
const STREAM_PROPERTIES_OBJECT = guid('B7DC0791-A9B7-11CF-8EE6-00C00C205365');
|
|
34
|
+
const HEADER_EXTENSION_OBJECT = guid('5FBF03B5-A92E-11CF-8EE3-00C00C205365');
|
|
35
|
+
const CONTENT_DESCRIPTION_OBJECT = guid('75B22633-668E-11CF-A6D9-00AA0062CE6C');
|
|
36
|
+
const EXTENDED_CONTENT_DESCRIPTION_OBJECT = guid('D2D0A440-E307-11D2-97F0-00A0C95EA850');
|
|
37
|
+
const METADATA_OBJECT = guid('C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA');
|
|
38
|
+
const METADATA_LIBRARY_OBJECT = guid('44231C94-9498-49D1-A141-1D134E457054');
|
|
39
|
+
const PADDING_OBJECT = guid('1806D474-CADF-4509-A4BA-9AABCB96AAE8');
|
|
40
|
+
const SCRIPT_COMMAND_OBJECT = guid('1EFB1A30-0B62-11D0-A39B-00A0C90348F6');
|
|
41
|
+
const AUDIO_MEDIA = guid('F8699E40-5B4D-11CF-A8FD-00805F5C442B');
|
|
42
|
+
const VIDEO_MEDIA = guid('BC19EFC0-5B4D-11CF-A8FD-00805F5C442B');
|
|
43
|
+
const SIMPLE_INDEX_OBJECT = guid('33000890-E5B1-11CF-89F4-00A0C90349CB');
|
|
44
|
+
const INDEX_OBJECT = guid('D6E229D3-35DA-11D1-9034-00A0C90349BE');
|
|
45
|
+
const MEDIA_OBJECT_INDEX_OBJECT = guid('FEB103F8-12AD-4C64-840F-2A1D2F7AD48C');
|
|
46
|
+
const TIMECODE_INDEX_OBJECT = guid('3CB73FD0-0C4A-4803-953D-EDF7B6228F0C');
|
|
47
|
+
/** The only top-level objects after the Data Object. */
|
|
48
|
+
const INDEX_OBJECTS = [SIMPLE_INDEX_OBJECT, INDEX_OBJECT, MEDIA_OBJECT_INDEX_OBJECT, TIMECODE_INDEX_OBJECT];
|
|
49
|
+
const CONTENT_ENCRYPTION_OBJECT = guid('2211B3FB-BD23-11D2-B4B7-00A0C955FC6E');
|
|
50
|
+
const EXTENDED_CONTENT_ENCRYPTION_OBJECT = guid('298AE614-2622-4C17-B935-DAE07EE9289C');
|
|
51
|
+
const DIGITAL_SIGNATURE_OBJECT = guid('2211B3FC-BD23-11D2-B4B7-00A0C955FC6E');
|
|
52
|
+
const ADVANCED_CONTENT_ENCRYPTION_OBJECT = guid('43058533-6981-49E6-9B74-AD12CB86D58C');
|
|
53
|
+
const ENCRYPTION_OBJECTS = [
|
|
54
|
+
CONTENT_ENCRYPTION_OBJECT,
|
|
55
|
+
EXTENDED_CONTENT_ENCRYPTION_OBJECT,
|
|
56
|
+
DIGITAL_SIGNATURE_OBJECT,
|
|
57
|
+
ADVANCED_CONTENT_ENCRYPTION_OBJECT,
|
|
58
|
+
];
|
|
59
|
+
const METADATA_OBJECTS = [
|
|
60
|
+
CONTENT_DESCRIPTION_OBJECT,
|
|
61
|
+
EXTENDED_CONTENT_DESCRIPTION_OBJECT,
|
|
62
|
+
METADATA_OBJECT,
|
|
63
|
+
METADATA_LIBRARY_OBJECT,
|
|
64
|
+
];
|
|
65
|
+
const MISMATCH = { verdict: 'mismatch', bytes: null };
|
|
66
|
+
const hasGuid = (bytes, offset, expected) => bytes.compare(expected, 0, GUID_LENGTH, offset, offset + GUID_LENGTH) === 0;
|
|
67
|
+
const isOneOf = (bytes, offset, guids) => guids.some((expected) => hasGuid(bytes, offset, expected));
|
|
68
|
+
/** The objects that follow each other exactly over `[start, end)`, or null when one does not read or there are more than `max`. */
|
|
69
|
+
function readObjects(bytes, start, end, max) {
|
|
70
|
+
const objects = [];
|
|
71
|
+
for (let offset = start; offset < end;) {
|
|
72
|
+
if (objects.length === max || end - offset < OBJECT_HEADER) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const size = bytes.readBigUInt64LE(offset + GUID_LENGTH);
|
|
76
|
+
if (size < BigInt(OBJECT_HEADER) || size > BigInt(end - offset)) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
objects.push({ start: offset, end: offset + Number(size) });
|
|
80
|
+
offset += Number(size);
|
|
81
|
+
}
|
|
82
|
+
return objects;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Checks an ASF file as a WMA (`video` false) or WMV (`video` true) and blanks its metadata.
|
|
86
|
+
* Never throws.
|
|
87
|
+
*/
|
|
88
|
+
export function inspectAsf(content, video) {
|
|
89
|
+
const top = readObjects(content, 0, content.length, MAX_TOP_LEVEL_OBJECTS);
|
|
90
|
+
if (!top || top.length < 2 || !hasGuid(content, top[0].start, HEADER_OBJECT)) {
|
|
91
|
+
return MISMATCH;
|
|
92
|
+
}
|
|
93
|
+
const [header, ...rest] = top;
|
|
94
|
+
if (header.end - header.start < HEADER_OBJECT_PREFIX || content.readUInt16BE(header.start + OBJECT_HEADER + 4) !== 0x0102) {
|
|
95
|
+
return MISMATCH;
|
|
96
|
+
}
|
|
97
|
+
if (!hasGuid(content, rest[0].start, DATA_OBJECT) || !rest.slice(1).every((object) => isOneOf(content, object.start, INDEX_OBJECTS))) {
|
|
98
|
+
return MISMATCH;
|
|
99
|
+
}
|
|
100
|
+
const children = readObjects(content, header.start + HEADER_OBJECT_PREFIX, header.end, MAX_HEADER_OBJECTS);
|
|
101
|
+
if (!children) {
|
|
102
|
+
return MISMATCH;
|
|
103
|
+
}
|
|
104
|
+
const budget = { left: MAX_HEADER_OBJECTS - children.length };
|
|
105
|
+
const all = [];
|
|
106
|
+
for (const child of children) {
|
|
107
|
+
all.push(child);
|
|
108
|
+
if (hasGuid(content, child.start, HEADER_EXTENSION_OBJECT)) {
|
|
109
|
+
const prefixEnd = child.start + OBJECT_HEADER + EXTENSION_PREFIX;
|
|
110
|
+
if (prefixEnd > child.end || content.readUInt32LE(prefixEnd - 4) !== child.end - prefixEnd) {
|
|
111
|
+
return MISMATCH;
|
|
112
|
+
}
|
|
113
|
+
const inner = readObjects(content, prefixEnd, child.end, Math.max(budget.left, 0));
|
|
114
|
+
if (!inner) {
|
|
115
|
+
return MISMATCH;
|
|
116
|
+
}
|
|
117
|
+
budget.left -= inner.length;
|
|
118
|
+
all.push(...inner);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
let hasFileProperties = false;
|
|
122
|
+
let hasAudio = false;
|
|
123
|
+
let hasVideo = false;
|
|
124
|
+
for (const object of all) {
|
|
125
|
+
if (isOneOf(content, object.start, ENCRYPTION_OBJECTS)) {
|
|
126
|
+
return { verdict: 'encrypted', bytes: null };
|
|
127
|
+
}
|
|
128
|
+
if (hasGuid(content, object.start, SCRIPT_COMMAND_OBJECT)) {
|
|
129
|
+
return { verdict: 'macros', bytes: null };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
for (const object of all) {
|
|
133
|
+
if (hasGuid(content, object.start, FILE_PROPERTIES_OBJECT)) {
|
|
134
|
+
hasFileProperties = true;
|
|
135
|
+
}
|
|
136
|
+
else if (hasGuid(content, object.start, STREAM_PROPERTIES_OBJECT)) {
|
|
137
|
+
if (object.end - object.start < OBJECT_HEADER + GUID_LENGTH) {
|
|
138
|
+
return MISMATCH;
|
|
139
|
+
}
|
|
140
|
+
const type = object.start + OBJECT_HEADER;
|
|
141
|
+
hasAudio ||= hasGuid(content, type, AUDIO_MEDIA);
|
|
142
|
+
hasVideo ||= hasGuid(content, type, VIDEO_MEDIA);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (!hasFileProperties || !(video ? hasVideo : hasAudio && !hasVideo)) {
|
|
146
|
+
return MISMATCH;
|
|
147
|
+
}
|
|
148
|
+
const metadata = all.filter((object) => isOneOf(content, object.start, METADATA_OBJECTS));
|
|
149
|
+
if (metadata.length === 0) {
|
|
150
|
+
return { verdict: 'valid', bytes: content };
|
|
151
|
+
}
|
|
152
|
+
const cleaned = Buffer.from(content);
|
|
153
|
+
for (const object of metadata) {
|
|
154
|
+
PADDING_OBJECT.copy(cleaned, object.start);
|
|
155
|
+
cleaned.fill(0, object.start + OBJECT_HEADER, object.end);
|
|
156
|
+
}
|
|
157
|
+
return { verdict: 'valid', bytes: cleaned };
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=asf-media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asf-media.js","sourceRoot":"","sources":["../src/asf-media.ts"],"names":[],"mappings":"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"}
|
package/dist/media-formats.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Checks and cleans GIF, BMP and ICO images and MP3, WAV, FLAC and Ogg audio without decoding
|
|
2
|
+
* Checks and cleans GIF, BMP and ICO images and MP3, AAC, WAV, FLAC and Ogg audio without decoding
|
|
3
3
|
* them, in the way `photo-metadata.ts` handles photos: GIF blocks, WAV chunks and FLAC metadata
|
|
4
4
|
* blocks are kept only when known, so comments, XMP and tags are dropped whole while the image
|
|
5
5
|
* and audio data stay byte for byte. BMP, ICO and Ogg only get a structure check: BMP and ICO
|
|
@@ -24,6 +24,12 @@ export declare function checkIco(content: Buffer): Buffer | null;
|
|
|
24
24
|
* a damaged stream further in is not noticed.
|
|
25
25
|
*/
|
|
26
26
|
export declare function stripMp3(content: Buffer): Buffer | null;
|
|
27
|
+
/**
|
|
28
|
+
* The raw ADTS AAC frames without ID3v2, ID3v1, APEv2 and Lyrics3 tags, or null when the audio is not a
|
|
29
|
+
* run of valid ADTS frames ending exactly at the end of the audio. Every frame header is walked, so nothing
|
|
30
|
+
* unchecked can sit between frames or after the last one.
|
|
31
|
+
*/
|
|
32
|
+
export declare function stripAac(content: Buffer): Buffer | null;
|
|
27
33
|
/**
|
|
28
34
|
* The WAV with only its `fmt `, `fact` and `data` chunks (LIST/INFO, id3, bext, iXML, XMP and the rest are
|
|
29
35
|
* dropped), or null when the chunks do not read or `data` does not follow `fmt `. Bytes after the RIFF
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-formats.d.ts","sourceRoot":"","sources":["../src/media-formats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"media-formats.d.ts","sourceRoot":"","sources":["../src/media-formats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqHH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAsDzD;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAkBzD;AAED,oHAAoH;AACpH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAuBzD;AAwFD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAYzD;AAkBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAgBzD;AAUD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAqCzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CAiC1D;AAoBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CA4BzD"}
|
package/dist/media-formats.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Checks and cleans GIF, BMP and ICO images and MP3, WAV, FLAC and Ogg audio without decoding
|
|
2
|
+
* Checks and cleans GIF, BMP and ICO images and MP3, AAC, WAV, FLAC and Ogg audio without decoding
|
|
3
3
|
* them, in the way `photo-metadata.ts` handles photos: GIF blocks, WAV chunks and FLAC metadata
|
|
4
4
|
* blocks are kept only when known, so comments, XMP and tags are dropped whole while the image
|
|
5
5
|
* and audio data stay byte for byte. BMP, ICO and Ogg only get a structure check: BMP and ICO
|
|
@@ -66,6 +66,10 @@ const MPEG_SAMPLE_RATES = {
|
|
|
66
66
|
2: [22050, 24000, 16000],
|
|
67
67
|
0: [11025, 12000, 8000],
|
|
68
68
|
};
|
|
69
|
+
const ADTS_HEADER_SIZE = 7;
|
|
70
|
+
const ADTS_HEADER_SIZE_WITH_CRC = 9;
|
|
71
|
+
const ADTS_MAX_FRAMES = 10_000_000;
|
|
72
|
+
const ADTS_SAMPLING_INDEXES = 13;
|
|
69
73
|
const RIFF_HEADER_SIZE = 12;
|
|
70
74
|
const RIFF_CHUNK_HEADER_SIZE = 8;
|
|
71
75
|
const WAV_KEPT_CHUNKS = new Set(['fmt ', 'fact', 'data']);
|
|
@@ -315,6 +319,43 @@ export function stripMp3(content) {
|
|
|
315
319
|
}
|
|
316
320
|
return slice(content, start, end);
|
|
317
321
|
}
|
|
322
|
+
/** The length of the ADTS frame whose header starts at `offset`, or 0 when it is not a valid header. */
|
|
323
|
+
function adtsFrameLength(bytes, offset) {
|
|
324
|
+
if (offset + ADTS_HEADER_SIZE > bytes.length) {
|
|
325
|
+
return 0;
|
|
326
|
+
}
|
|
327
|
+
const [first, second, third] = [bytes[offset], bytes[offset + 1], bytes[offset + 2]];
|
|
328
|
+
const layer = (second >> 1) & 3;
|
|
329
|
+
const headerSize = second & 1 ? ADTS_HEADER_SIZE : ADTS_HEADER_SIZE_WITH_CRC;
|
|
330
|
+
const samplingIndex = (third >> 2) & 0xf;
|
|
331
|
+
const length = ((bytes[offset + 3] & 3) << 11) | (bytes[offset + 4] << 3) | (bytes[offset + 5] >> 5);
|
|
332
|
+
if (first !== 0xff || (second & 0xf0) !== 0xf0 || layer !== 0 || samplingIndex >= ADTS_SAMPLING_INDEXES || length < headerSize) {
|
|
333
|
+
return 0;
|
|
334
|
+
}
|
|
335
|
+
return length;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* The raw ADTS AAC frames without ID3v2, ID3v1, APEv2 and Lyrics3 tags, or null when the audio is not a
|
|
339
|
+
* run of valid ADTS frames ending exactly at the end of the audio. Every frame header is walked, so nothing
|
|
340
|
+
* unchecked can sit between frames or after the last one.
|
|
341
|
+
*/
|
|
342
|
+
export function stripAac(content) {
|
|
343
|
+
const start = skipId3v2(content);
|
|
344
|
+
if (start < 0) {
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
const end = findTrailingTags(content, start);
|
|
348
|
+
const audio = content.subarray(start, end);
|
|
349
|
+
let offset = 0;
|
|
350
|
+
for (let frames = 0; offset < audio.length; frames++) {
|
|
351
|
+
const length = frames < ADTS_MAX_FRAMES ? adtsFrameLength(audio, offset) : 0;
|
|
352
|
+
if (length === 0 || offset + length > audio.length) {
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
offset += length;
|
|
356
|
+
}
|
|
357
|
+
return audio.length > 0 ? slice(content, start, end) : null;
|
|
358
|
+
}
|
|
318
359
|
function riffChunk(type, payload) {
|
|
319
360
|
const chunk = Buffer.alloc(RIFF_CHUNK_HEADER_SIZE + payload.length + (payload.length & 1));
|
|
320
361
|
chunk.write(type, 0, 'latin1');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-formats.js","sourceRoot":"","sources":["../src/media-formats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media-formats.js","sourceRoot":"","sources":["../src/media-formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo-metadata.d.ts","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"photo-metadata.d.ts","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAmS9D,eAAO,MAAM,UAAU,UAAqG,CAAC;AAE7H,eAAO,MAAM,UAAU,UAA6C,CAAC;AAErE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAI,UAAU,GAAG,IAAI,CAgDtG"}
|
package/dist/photo-metadata.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { crc32 } from 'node:zlib';
|
|
9
9
|
import { stripHeif } from './heif-metadata.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { inspectAsf } from './asf-media.js';
|
|
11
|
+
import { checkBmp, checkIco, checkOgg, stripAac, stripFlac, stripGif, stripMp3, stripWav } from './media-formats.js';
|
|
12
|
+
import { stripAvi, stripIsoMedia, stripMatroska } from './video-formats.js';
|
|
12
13
|
const ORIENTATION_TAG = 0x0112;
|
|
13
14
|
const SHORT_TYPE = 3;
|
|
14
15
|
const UPRIGHT = 1;
|
|
@@ -326,7 +327,16 @@ export function stripPhotoMetadata(extension, bytes) {
|
|
|
326
327
|
case 'mov':
|
|
327
328
|
return stripIsoMedia(content, null);
|
|
328
329
|
case 'webm':
|
|
329
|
-
return
|
|
330
|
+
return stripMatroska(content, 'webm');
|
|
331
|
+
case 'mkv':
|
|
332
|
+
return stripMatroska(content, 'matroska');
|
|
333
|
+
case 'aac':
|
|
334
|
+
return stripAac(content);
|
|
335
|
+
case 'avi':
|
|
336
|
+
return stripAvi(content);
|
|
337
|
+
case 'wma':
|
|
338
|
+
case 'wmv':
|
|
339
|
+
return inspectAsf(content, extension === 'wmv').bytes;
|
|
330
340
|
default:
|
|
331
341
|
return bytes;
|
|
332
342
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo-metadata.js","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"photo-metadata.js","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* declared MIME type, and the actual content, i.e. the magic-byte signature plus the parts a file
|
|
5
5
|
* of that kind always has. Extension and MIME alone are trivially spoofed.
|
|
6
6
|
*/
|
|
7
|
-
export type AllowedExtension = 'pdf' | 'doc' | 'docx' | 'ppt' | 'pptx' | 'xls' | 'xlsx' | 'odt' | 'ods' | 'odp' | 'jpg' | 'jpeg' | 'png' | 'webp' | 'heic' | 'heif' | 'avif' | 'gif' | 'bmp' | 'ico' | 'mp3' | 'wav' | 'flac' | 'ogg' | 'm4a' | 'mp4' | 'mov' | 'webm' | 'csv' | 'txt' | 'md' | 'rtf' | 'zip' | 'tar' | 'gz' | 'tgz' | 'rar' | '7z';
|
|
7
|
+
export type AllowedExtension = 'pdf' | 'doc' | 'docx' | 'ppt' | 'pptx' | 'xls' | 'xlsx' | 'odt' | 'ods' | 'odp' | 'jpg' | 'jpeg' | 'png' | 'webp' | 'heic' | 'heif' | 'avif' | 'gif' | 'bmp' | 'ico' | 'mp3' | 'aac' | 'wav' | 'flac' | 'ogg' | 'm4a' | 'wma' | 'mp4' | 'mov' | 'webm' | 'mkv' | 'avi' | 'wmv' | 'csv' | 'txt' | 'md' | 'rtf' | 'zip' | 'tar' | 'gz' | 'tgz' | 'rar' | '7z';
|
|
8
8
|
/**
|
|
9
9
|
* How much accepting a format exposes. `low`: read in full, nothing in it runs, and it is in the
|
|
10
10
|
* default list. `elevated`: read in full, but the format is a common malware carrier, gets rendered
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-allowlist.d.ts","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"upload-allowlist.d.ts","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,MAAM,gBAAgB,GACzB,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAChF,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAClF,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACvG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAwb1D,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAA8F,CAAC;AAEzJ,iEAAiE;AACjE,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAE9B,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAE,UAAU,GAAE,SAAS,gBAAgB,EAAuB,GAAI,MAAM,CAEtG;AAKD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAChD;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAE/F,MAAM,MAAM,gBAAgB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE9C,wBAAgB,YAAY,CAAE,QAAQ,EAAE,MAAM,GAAI,MAAM,CAMvD;AA4BD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAE,QAAQ,EAAE,MAAM,GAAI,MAAM,CAsB3D;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,EAAE,QAAQ,EAAE,iBAAsC,EAAE,EAAE,aAAa,GACjE,gBAAgB,CAwBlB;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAE,SAAS,EAAE,gBAAgB,GAAI,MAAM,CAE1E;AAmED,wGAAwG;AACxG,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAiB/E;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,UAAU,EACjB,iBAAiB,GAAE,SAAS,gBAAgB,EAAuB,GACjE,kBAAkB,CAuFpB"}
|
package/dist/upload-allowlist.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* of that kind always has. Extension and MIME alone are trivially spoofed.
|
|
6
6
|
*/
|
|
7
7
|
import { inspectGzip, inspectTarArchive, inspectZipArchive } from './archive-content.js';
|
|
8
|
+
import { inspectAsf } from './asf-media.js';
|
|
8
9
|
import { inspectExcelGlobals } from './excel-macro-sheets.js';
|
|
9
10
|
import { readFtypBrands } from './heif-metadata.js';
|
|
10
11
|
import { readOleDirectory } from './ole-streams.js';
|
|
@@ -384,6 +385,12 @@ const ALLOWED_TYPES = [
|
|
|
384
385
|
// Old QuickTime movies have no `ftyp`; the structure is checked when the metadata is removed.
|
|
385
386
|
{ extension: 'mov', risk: 'low', magic: 'quicktime', mimeTypes: ['video/quicktime'] },
|
|
386
387
|
{ extension: 'webm', risk: 'low', magic: 'webm', mimeTypes: ['video/webm', 'audio/webm'] },
|
|
388
|
+
{ extension: 'aac', risk: 'low', magic: 'aac', mimeTypes: ['audio/aac', 'audio/x-aac', 'audio/aacp'] },
|
|
389
|
+
{ extension: 'mkv', risk: 'low', magic: 'webm', mimeTypes: ['video/x-matroska', 'video/matroska', 'audio/x-matroska'] },
|
|
390
|
+
{ extension: 'avi', risk: 'low', magic: 'avi', mimeTypes: ['video/x-msvideo', 'video/avi', 'video/msvideo'] },
|
|
391
|
+
// Windows Media Player runs script commands and opens DRM license URLs in these; both are refused.
|
|
392
|
+
{ extension: 'wma', risk: 'elevated', magic: 'asf', mimeTypes: ['audio/x-ms-wma', 'application/vnd.ms-asf'] },
|
|
393
|
+
{ extension: 'wmv', risk: 'elevated', magic: 'asf', mimeTypes: ['video/x-ms-wmv', 'video/x-ms-asf', 'application/vnd.ms-asf'] },
|
|
387
394
|
// Rendered Markdown may carry raw HTML and `javascript:` links; the file itself is checked as text.
|
|
388
395
|
{ extension: 'md', risk: 'elevated', magic: 'text', mimeTypes: ['text/markdown', 'text/x-markdown', 'text/plain'] },
|
|
389
396
|
// A common carrier of OLE exploits; refused on any object, template or DDE field.
|
|
@@ -524,6 +531,13 @@ const MAGIC_SIGNATURES = {
|
|
|
524
531
|
// "RIFF", the size, "WAVE"
|
|
525
532
|
wav: (bytes) => startsWith(bytes, [0x52, 0x49, 0x46, 0x46]) && bytes.length >= 12 &&
|
|
526
533
|
startsWith(bytes.subarray(8), [0x57, 0x41, 0x56, 0x45]),
|
|
534
|
+
// An ID3 tag or an ADTS frame sync (12 bits set, MPEG layer 0)
|
|
535
|
+
aac: (bytes) => startsWith(bytes, [0x49, 0x44, 0x33]) || (bytes.length >= 2 && bytes[0] === 0xff && (bytes[1] & 0xf6) === 0xf0),
|
|
536
|
+
// "RIFF", the size, "AVI "
|
|
537
|
+
avi: (bytes) => startsWith(bytes, [0x52, 0x49, 0x46, 0x46]) && bytes.length >= 12 &&
|
|
538
|
+
startsWith(bytes.subarray(8), [0x41, 0x56, 0x49, 0x20]),
|
|
539
|
+
// The ASF Header Object GUID
|
|
540
|
+
asf: (bytes) => startsWith(bytes, [0x30, 0x26, 0xb2, 0x75, 0x8e, 0x66, 0xcf, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c]),
|
|
527
541
|
// "fLaC"
|
|
528
542
|
flac: (bytes) => startsWith(bytes, [0x66, 0x4c, 0x61, 0x43]),
|
|
529
543
|
// "OggS"
|
|
@@ -586,6 +600,9 @@ export function inspectFileContent(extension, bytes, allowedExtensions = ALLOWED
|
|
|
586
600
|
if (allowed.magic === 'text') {
|
|
587
601
|
return inspectText(content, allowed.extension === 'csv');
|
|
588
602
|
}
|
|
603
|
+
if (allowed.magic === 'asf') {
|
|
604
|
+
return inspectAsf(content, allowed.extension === 'wmv').verdict;
|
|
605
|
+
}
|
|
589
606
|
if (allowed.magic === 'rtf') {
|
|
590
607
|
return inspectRtf(content);
|
|
591
608
|
}
|