@pdfme/pdf-lib 5.5.9 → 5.5.10-dev.5
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/dist/cjs/src/core/errors.js +8 -1
- package/dist/cjs/src/core/errors.js.map +1 -1
- package/dist/cjs/src/core/streams/DecodeStream.js +17 -0
- package/dist/cjs/src/core/streams/DecodeStream.js.map +1 -1
- package/dist/esm/src/core/errors.js +6 -0
- package/dist/esm/src/core/errors.js.map +1 -1
- package/dist/esm/src/core/streams/DecodeStream.js +18 -1
- package/dist/esm/src/core/streams/DecodeStream.js.map +1 -1
- package/dist/node/src/core/errors.js +8 -1
- package/dist/node/src/core/errors.js.map +1 -1
- package/dist/node/src/core/streams/DecodeStream.js +17 -0
- package/dist/node/src/core/streams/DecodeStream.js.map +1 -1
- package/dist/types/src/core/errors.d.ts +3 -0
- package/package.json +1 -1
- package/src/core/errors.ts +7 -0
- package/src/core/streams/DecodeStream.ts +19 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MissingKeywordError = exports.MissingPDFHeaderError = exports.StalledParserError = exports.UnbalancedParenthesisError = exports.PDFStreamParsingError = exports.PDFInvalidObjectParsingError = exports.PDFObjectParsingError = exports.NextByteAssertionError = exports.PDFParsingError = exports.NumberParsingError = exports.MissingTfOperatorError = exports.MissingDAEntryError = exports.MultiSelectValueError = exports.InvalidAcroFieldValueError = exports.IndexOutOfBoundsError = exports.CorruptPageTreeError = exports.InvalidTargetIndexError = exports.InvalidPDFDateStringError = exports.PDFArrayIsNotRectangleError = exports.PageEmbeddingMismatchedContextError = exports.UnrecognizedStreamTypeError = exports.MissingPageContentsEmbeddingError = exports.MissingCatalogError = exports.ReparseError = exports.UnsupportedEncodingError = exports.UnexpectedObjectTypeError = exports.PrivateConstructorError = exports.MethodNotImplementedError = void 0;
|
|
3
|
+
exports.MissingKeywordError = exports.MissingPDFHeaderError = exports.StalledParserError = exports.DecompressionBombError = exports.UnbalancedParenthesisError = exports.PDFStreamParsingError = exports.PDFInvalidObjectParsingError = exports.PDFObjectParsingError = exports.NextByteAssertionError = exports.PDFParsingError = exports.NumberParsingError = exports.MissingTfOperatorError = exports.MissingDAEntryError = exports.MultiSelectValueError = exports.InvalidAcroFieldValueError = exports.IndexOutOfBoundsError = exports.CorruptPageTreeError = exports.InvalidTargetIndexError = exports.InvalidPDFDateStringError = exports.PDFArrayIsNotRectangleError = exports.PageEmbeddingMismatchedContextError = exports.UnrecognizedStreamTypeError = exports.MissingPageContentsEmbeddingError = exports.MissingCatalogError = exports.ReparseError = exports.UnsupportedEncodingError = exports.UnexpectedObjectTypeError = exports.PrivateConstructorError = exports.MethodNotImplementedError = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
class MethodNotImplementedError extends Error {
|
|
6
6
|
constructor(className, methodName) {
|
|
@@ -183,6 +183,13 @@ class UnbalancedParenthesisError extends PDFParsingError {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
exports.UnbalancedParenthesisError = UnbalancedParenthesisError;
|
|
186
|
+
class DecompressionBombError extends Error {
|
|
187
|
+
constructor(requested, maxSize) {
|
|
188
|
+
const msg = `Decompression bomb detected: requested buffer size ${requested} exceeds maximum allowed size ${maxSize}`;
|
|
189
|
+
super(msg);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.DecompressionBombError = DecompressionBombError;
|
|
186
193
|
class StalledParserError extends PDFParsingError {
|
|
187
194
|
constructor(pos) {
|
|
188
195
|
const msg = `Parser stalled`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,11 @@ const Stream_1 = __importDefault(require("./Stream"));
|
|
|
17
17
|
// having special cases that would be required if we used |null| for an empty
|
|
18
18
|
// buffer.
|
|
19
19
|
const emptyBuffer = new Uint8Array(0);
|
|
20
|
+
/**
|
|
21
|
+
* Maximum allowed decoded buffer size (100 MB).
|
|
22
|
+
* Prevents decompression bomb attacks from consuming unbounded memory.
|
|
23
|
+
*/
|
|
24
|
+
const MAX_DECODED_SIZE = 100 * 1024 * 1024;
|
|
20
25
|
/**
|
|
21
26
|
* Super class for the decoding streams
|
|
22
27
|
*/
|
|
@@ -62,6 +67,9 @@ class DecodeStream {
|
|
|
62
67
|
while (this.minBufferLength < maybeMinBufferLength) {
|
|
63
68
|
this.minBufferLength *= 2;
|
|
64
69
|
}
|
|
70
|
+
if (this.minBufferLength > MAX_DECODED_SIZE) {
|
|
71
|
+
this.minBufferLength = MAX_DECODED_SIZE;
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
get isEmpty() {
|
|
@@ -161,10 +169,19 @@ class DecodeStream {
|
|
|
161
169
|
if (requested <= buffer.byteLength) {
|
|
162
170
|
return buffer;
|
|
163
171
|
}
|
|
172
|
+
if (requested > MAX_DECODED_SIZE) {
|
|
173
|
+
throw new errors_1.DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
174
|
+
}
|
|
164
175
|
let size = this.minBufferLength;
|
|
165
176
|
while (size < requested) {
|
|
166
177
|
size *= 2;
|
|
167
178
|
}
|
|
179
|
+
if (size > MAX_DECODED_SIZE) {
|
|
180
|
+
size = MAX_DECODED_SIZE;
|
|
181
|
+
if (size < requested) {
|
|
182
|
+
throw new errors_1.DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
168
185
|
const buffer2 = new Uint8Array(size);
|
|
169
186
|
buffer2.set(buffer);
|
|
170
187
|
return (this.buffer = buffer2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":";;;;;AAAA,sCAA8E;AAC9E,sDAA8C;AAE9C;;;;;;GAMG;AAEH,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,UAAU;AACV,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAM,YAAY;IAQhB,YAAY,oBAA6B;QAP/B;;;;;WAAqB;QACrB;;;;;WAAmB;QACnB;;;;;WAAa;QAEf;;;;;WAAY;QACZ;;;;;WAAwB;QAG9B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,oBAAoB,EAAE,CAAC;YACzB,yEAAyE;YACzE,OAAO,IAAI,CAAC,eAAe,GAAG,oBAAoB,EAAE,CAAC;gBACnD,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,GAAG,gBAAgB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,YAAY,GAAG,KAAK;QAC3C,IAAI,GAAG,CAAC;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAErB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAChC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;YAEnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;gBAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBACjB,GAAG,GAAG,MAAM,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,sEAAsE;QACtE,OAAO,YAAY,IAAI,CAAC,CAAC,QAAQ,YAAY,iBAAiB,CAAC;YAC7D,CAAC,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,MAAc,EAAE,YAAY,GAAG,KAAK;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAS;QACZ,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACf,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,MAAc,CAAC,UAAU;QACpD,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,gBAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAES,SAAS;QACjB,MAAM,IAAI,kCAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAES,YAAY,CAAC,SAAiB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACjC,MAAM,IAAI,+BAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;QAChC,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAC5B,IAAI,GAAG,gBAAgB,CAAC;YACxB,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,+BAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACjC,CAAC;CAQF;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -155,6 +155,12 @@ export class UnbalancedParenthesisError extends PDFParsingError {
|
|
|
155
155
|
super(pos, msg);
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
+
export class DecompressionBombError extends Error {
|
|
159
|
+
constructor(requested, maxSize) {
|
|
160
|
+
const msg = `Decompression bomb detected: requested buffer size ${requested} exceeds maximum allowed size ${maxSize}`;
|
|
161
|
+
super(msg);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
158
164
|
export class StalledParserError extends PDFParsingError {
|
|
159
165
|
constructor(pos) {
|
|
160
166
|
const msg = `Parser stalled`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,SAAiB,EAAE,UAAkB;QAC/C,MAAM,GAAG,GAAG,UAAU,SAAS,IAAI,UAAU,oBAAoB,CAAC;QAClE,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,oBAAoB,SAAS,iCAAiC,CAAC;QAC3E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,QAAqB,EAAE,MAAW;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC;QAEzD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtF,MAAM,GAAG,GACP,wBAAwB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YACtD,uBAAuB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE1D,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,QAAgB;QAC1B,MAAM,GAAG,GAAG,GAAG,QAAQ,gCAAgC,CAAC;QACxD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,SAAiB,EAAE,UAAkB;QAC/C,MAAM,GAAG,GAAG,eAAe,SAAS,IAAI,UAAU,mBAAmB,CAAC;QACtE,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,GAAe;QACzB,MAAM,GAAG,GAAG,wBAAwB,GAAG,GAAG,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D;QACE,MAAM,GAAG,GAAG,wCAAwC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,MAAW;QACrB,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC;QACtE,MAAM,GAAG,GAAG,6BAA6B,UAAU,EAAE,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IAC5D;QACE,MAAM,GAAG,GAAG,gJAAgJ,CAAC;QAC7J,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,sCAAsC,IAAI,2DAA2D,CAAC;QAClH,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,KAAa;QACvB,MAAM,GAAG,GAAG,yBAAyB,KAAK,gEAAgE,CAAC;QAC3G,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,WAAmB,EAAE,KAAa;QAC5C,MAAM,GAAG,GAAG,8CAA8C,WAAW,4BAA4B,KAAK,EAAE,CAAC;QACzG,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,WAAmB,EAAE,SAAiB;QAChD,MAAM,GAAG,GAAG,aAAa,SAAS,mBAAmB,WAAW,sFAAsF,CAAC;QACvJ,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,KAAa,EAAE,GAAW,EAAE,GAAW;QACjD,MAAM,GAAG,GAAG,4BAA4B,GAAG,gBAAgB,GAAG,sBAAsB,KAAK,EAAE,CAAC;QAC5F,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;QACE,MAAM,GAAG,GAAG,sCAAsC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,MAAM,GAAG,GAAG,6DAA6D,CAAC;QAC1E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,sDAAsD,SAAS,EAAE,CAAC;QAC9E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,yCAAyC,SAAS,EAAE,CAAC;QACjE,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAUD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,GAAa,EAAE,KAAa;QACtC,MAAM,GAAG,GACP,yBAAyB;YACzB,SAAS,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,KAAK,GAAG,CAAC;QAC1E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,GAAa,EAAE,OAAe;QACxC,MAAM,GAAG,GACP,+BAA+B;YAC/B,SAAS,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC;QAC1E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,GAAa,EAAE,YAAoB,EAAE,UAAkB;QACjE,MAAM,GAAG,GAAG,4BAA4B,YAAY,wBAAwB,UAAU,EAAE,CAAC;QACzF,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAa,EAAE,IAAY;QACrC,MAAM,GAAG,GAAG,gEAAgE,IAAI,EAAE,CAAC;QACnF,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,eAAe;IAC/D,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,oCAAoC,CAAC;QACjD,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,4BAA4B,CAAC;QACzC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,kEAAkE,CAAC;QAC/E,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,qBAAqB,CAAC;QAClC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,GAAa,EAAE,OAAiB;QAC1C,MAAM,GAAG,GAAG,kCAAkC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC;QACxE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MethodNotImplementedError } from '../errors';
|
|
1
|
+
import { MethodNotImplementedError, DecompressionBombError } from '../errors';
|
|
2
2
|
import Stream from './Stream';
|
|
3
3
|
/*
|
|
4
4
|
* Copyright 2012 Mozilla Foundation
|
|
@@ -12,6 +12,11 @@ import Stream from './Stream';
|
|
|
12
12
|
// having special cases that would be required if we used |null| for an empty
|
|
13
13
|
// buffer.
|
|
14
14
|
const emptyBuffer = new Uint8Array(0);
|
|
15
|
+
/**
|
|
16
|
+
* Maximum allowed decoded buffer size (100 MB).
|
|
17
|
+
* Prevents decompression bomb attacks from consuming unbounded memory.
|
|
18
|
+
*/
|
|
19
|
+
const MAX_DECODED_SIZE = 100 * 1024 * 1024;
|
|
15
20
|
/**
|
|
16
21
|
* Super class for the decoding streams
|
|
17
22
|
*/
|
|
@@ -57,6 +62,9 @@ class DecodeStream {
|
|
|
57
62
|
while (this.minBufferLength < maybeMinBufferLength) {
|
|
58
63
|
this.minBufferLength *= 2;
|
|
59
64
|
}
|
|
65
|
+
if (this.minBufferLength > MAX_DECODED_SIZE) {
|
|
66
|
+
this.minBufferLength = MAX_DECODED_SIZE;
|
|
67
|
+
}
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
get isEmpty() {
|
|
@@ -156,10 +164,19 @@ class DecodeStream {
|
|
|
156
164
|
if (requested <= buffer.byteLength) {
|
|
157
165
|
return buffer;
|
|
158
166
|
}
|
|
167
|
+
if (requested > MAX_DECODED_SIZE) {
|
|
168
|
+
throw new DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
169
|
+
}
|
|
159
170
|
let size = this.minBufferLength;
|
|
160
171
|
while (size < requested) {
|
|
161
172
|
size *= 2;
|
|
162
173
|
}
|
|
174
|
+
if (size > MAX_DECODED_SIZE) {
|
|
175
|
+
size = MAX_DECODED_SIZE;
|
|
176
|
+
if (size < requested) {
|
|
177
|
+
throw new DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
163
180
|
const buffer2 = new Uint8Array(size);
|
|
164
181
|
buffer2.set(buffer);
|
|
165
182
|
return (this.buffer = buffer2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MissingKeywordError = exports.MissingPDFHeaderError = exports.StalledParserError = exports.UnbalancedParenthesisError = exports.PDFStreamParsingError = exports.PDFInvalidObjectParsingError = exports.PDFObjectParsingError = exports.NextByteAssertionError = exports.PDFParsingError = exports.NumberParsingError = exports.MissingTfOperatorError = exports.MissingDAEntryError = exports.MultiSelectValueError = exports.InvalidAcroFieldValueError = exports.IndexOutOfBoundsError = exports.CorruptPageTreeError = exports.InvalidTargetIndexError = exports.InvalidPDFDateStringError = exports.PDFArrayIsNotRectangleError = exports.PageEmbeddingMismatchedContextError = exports.UnrecognizedStreamTypeError = exports.MissingPageContentsEmbeddingError = exports.MissingCatalogError = exports.ReparseError = exports.UnsupportedEncodingError = exports.UnexpectedObjectTypeError = exports.PrivateConstructorError = exports.MethodNotImplementedError = void 0;
|
|
3
|
+
exports.MissingKeywordError = exports.MissingPDFHeaderError = exports.StalledParserError = exports.DecompressionBombError = exports.UnbalancedParenthesisError = exports.PDFStreamParsingError = exports.PDFInvalidObjectParsingError = exports.PDFObjectParsingError = exports.NextByteAssertionError = exports.PDFParsingError = exports.NumberParsingError = exports.MissingTfOperatorError = exports.MissingDAEntryError = exports.MultiSelectValueError = exports.InvalidAcroFieldValueError = exports.IndexOutOfBoundsError = exports.CorruptPageTreeError = exports.InvalidTargetIndexError = exports.InvalidPDFDateStringError = exports.PDFArrayIsNotRectangleError = exports.PageEmbeddingMismatchedContextError = exports.UnrecognizedStreamTypeError = exports.MissingPageContentsEmbeddingError = exports.MissingCatalogError = exports.ReparseError = exports.UnsupportedEncodingError = exports.UnexpectedObjectTypeError = exports.PrivateConstructorError = exports.MethodNotImplementedError = void 0;
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
class MethodNotImplementedError extends Error {
|
|
6
6
|
constructor(className, methodName) {
|
|
@@ -183,6 +183,13 @@ class UnbalancedParenthesisError extends PDFParsingError {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
exports.UnbalancedParenthesisError = UnbalancedParenthesisError;
|
|
186
|
+
class DecompressionBombError extends Error {
|
|
187
|
+
constructor(requested, maxSize) {
|
|
188
|
+
const msg = `Decompression bomb detected: requested buffer size ${requested} exceeds maximum allowed size ${maxSize}`;
|
|
189
|
+
super(msg);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.DecompressionBombError = DecompressionBombError;
|
|
186
193
|
class StalledParserError extends PDFParsingError {
|
|
187
194
|
constructor(pos) {
|
|
188
195
|
const msg = `Parser stalled`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,11 @@ const Stream_1 = __importDefault(require("./Stream"));
|
|
|
17
17
|
// having special cases that would be required if we used |null| for an empty
|
|
18
18
|
// buffer.
|
|
19
19
|
const emptyBuffer = new Uint8Array(0);
|
|
20
|
+
/**
|
|
21
|
+
* Maximum allowed decoded buffer size (100 MB).
|
|
22
|
+
* Prevents decompression bomb attacks from consuming unbounded memory.
|
|
23
|
+
*/
|
|
24
|
+
const MAX_DECODED_SIZE = 100 * 1024 * 1024;
|
|
20
25
|
/**
|
|
21
26
|
* Super class for the decoding streams
|
|
22
27
|
*/
|
|
@@ -62,6 +67,9 @@ class DecodeStream {
|
|
|
62
67
|
while (this.minBufferLength < maybeMinBufferLength) {
|
|
63
68
|
this.minBufferLength *= 2;
|
|
64
69
|
}
|
|
70
|
+
if (this.minBufferLength > MAX_DECODED_SIZE) {
|
|
71
|
+
this.minBufferLength = MAX_DECODED_SIZE;
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
get isEmpty() {
|
|
@@ -161,10 +169,19 @@ class DecodeStream {
|
|
|
161
169
|
if (requested <= buffer.byteLength) {
|
|
162
170
|
return buffer;
|
|
163
171
|
}
|
|
172
|
+
if (requested > MAX_DECODED_SIZE) {
|
|
173
|
+
throw new errors_1.DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
174
|
+
}
|
|
164
175
|
let size = this.minBufferLength;
|
|
165
176
|
while (size < requested) {
|
|
166
177
|
size *= 2;
|
|
167
178
|
}
|
|
179
|
+
if (size > MAX_DECODED_SIZE) {
|
|
180
|
+
size = MAX_DECODED_SIZE;
|
|
181
|
+
if (size < requested) {
|
|
182
|
+
throw new errors_1.DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
168
185
|
const buffer2 = new Uint8Array(size);
|
|
169
186
|
buffer2.set(buffer);
|
|
170
187
|
return (this.buffer = buffer2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,9 @@ export declare class PDFStreamParsingError extends PDFParsingError {
|
|
|
80
80
|
export declare class UnbalancedParenthesisError extends PDFParsingError {
|
|
81
81
|
constructor(pos: Position);
|
|
82
82
|
}
|
|
83
|
+
export declare class DecompressionBombError extends Error {
|
|
84
|
+
constructor(requested: number, maxSize: number);
|
|
85
|
+
}
|
|
83
86
|
export declare class StalledParserError extends PDFParsingError {
|
|
84
87
|
constructor(pos: Position);
|
|
85
88
|
}
|
package/package.json
CHANGED
package/src/core/errors.ts
CHANGED
|
@@ -197,6 +197,13 @@ export class UnbalancedParenthesisError extends PDFParsingError {
|
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
export class DecompressionBombError extends Error {
|
|
201
|
+
constructor(requested: number, maxSize: number) {
|
|
202
|
+
const msg = `Decompression bomb detected: requested buffer size ${requested} exceeds maximum allowed size ${maxSize}`;
|
|
203
|
+
super(msg);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
200
207
|
export class StalledParserError extends PDFParsingError {
|
|
201
208
|
constructor(pos: Position) {
|
|
202
209
|
const msg = `Parser stalled`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MethodNotImplementedError } from '../errors';
|
|
1
|
+
import { MethodNotImplementedError, DecompressionBombError } from '../errors';
|
|
2
2
|
import Stream, { StreamType } from './Stream';
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -15,6 +15,12 @@ import Stream, { StreamType } from './Stream';
|
|
|
15
15
|
// buffer.
|
|
16
16
|
const emptyBuffer = new Uint8Array(0);
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Maximum allowed decoded buffer size (100 MB).
|
|
20
|
+
* Prevents decompression bomb attacks from consuming unbounded memory.
|
|
21
|
+
*/
|
|
22
|
+
const MAX_DECODED_SIZE = 100 * 1024 * 1024;
|
|
23
|
+
|
|
18
24
|
/**
|
|
19
25
|
* Super class for the decoding streams
|
|
20
26
|
*/
|
|
@@ -37,6 +43,9 @@ class DecodeStream implements StreamType {
|
|
|
37
43
|
while (this.minBufferLength < maybeMinBufferLength) {
|
|
38
44
|
this.minBufferLength *= 2;
|
|
39
45
|
}
|
|
46
|
+
if (this.minBufferLength > MAX_DECODED_SIZE) {
|
|
47
|
+
this.minBufferLength = MAX_DECODED_SIZE;
|
|
48
|
+
}
|
|
40
49
|
}
|
|
41
50
|
}
|
|
42
51
|
|
|
@@ -150,10 +159,19 @@ class DecodeStream implements StreamType {
|
|
|
150
159
|
if (requested <= buffer.byteLength) {
|
|
151
160
|
return buffer;
|
|
152
161
|
}
|
|
162
|
+
if (requested > MAX_DECODED_SIZE) {
|
|
163
|
+
throw new DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
164
|
+
}
|
|
153
165
|
let size = this.minBufferLength;
|
|
154
166
|
while (size < requested) {
|
|
155
167
|
size *= 2;
|
|
156
168
|
}
|
|
169
|
+
if (size > MAX_DECODED_SIZE) {
|
|
170
|
+
size = MAX_DECODED_SIZE;
|
|
171
|
+
if (size < requested) {
|
|
172
|
+
throw new DecompressionBombError(requested, MAX_DECODED_SIZE);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
157
175
|
const buffer2 = new Uint8Array(size);
|
|
158
176
|
buffer2.set(buffer);
|
|
159
177
|
return (this.buffer = buffer2);
|