@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.
@@ -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":";;;AAEA,oCAAyC;AAEzC,MAAa,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;AALD,8DAKC;AAED,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,oBAAoB,SAAS,iCAAiC,CAAC;QAC3E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,0DAKC;AAED,MAAa,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;AAZD,8DAYC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,QAAgB;QAC1B,MAAM,GAAG,GAAG,GAAG,QAAQ,gCAAgC,CAAC;QACxD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,4DAKC;AAED,MAAa,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;AALD,oCAKC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,GAAe;QACzB,MAAM,GAAG,GAAG,wBAAwB,GAAG,GAAG,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,kDAKC;AAED,MAAa,iCAAkC,SAAQ,KAAK;IAC1D;QACE,MAAM,GAAG,GAAG,wCAAwC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,8EAKC;AAED,MAAa,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;AAND,kEAMC;AAED,MAAa,mCAAoC,SAAQ,KAAK;IAC5D;QACE,MAAM,GAAG,GAAG,gJAAgJ,CAAC;QAC7J,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,kFAKC;AAED,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,sCAAsC,IAAI,2DAA2D,CAAC;QAClH,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,kEAKC;AAED,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,KAAa;QACvB,MAAM,GAAG,GAAG,yBAAyB,KAAK,gEAAgE,CAAC;QAC3G,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,8DAKC;AAED,MAAa,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;AALD,0DAKC;AAED,MAAa,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;AALD,oDAKC;AAED,MAAa,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;AALD,sDAKC;AAED,MAAa,0BAA2B,SAAQ,KAAK;IACnD;QACE,MAAM,GAAG,GAAG,sCAAsC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,gEAKC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C;QACE,MAAM,GAAG,GAAG,6DAA6D,CAAC;QAC1E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,sDAKC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,sDAAsD,SAAS,EAAE,CAAC;QAC9E,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,kDAKC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,SAAiB;QAC3B,MAAM,GAAG,GAAG,yCAAyC,SAAS,EAAE,CAAC;QACjE,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AALD,wDAKC;AAUD,MAAa,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;AAPD,gDAOC;AAED,MAAa,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;AAPD,0CAOC;AAED,MAAa,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;AALD,wDAKC;AAED,MAAa,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;AALD,sDAKC;AAED,MAAa,4BAA6B,SAAQ,eAAe;IAC/D,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,oCAAoC,CAAC;QACjD,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,oEAKC;AAED,MAAa,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,4BAA4B,CAAC;QACzC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,sDAKC;AAED,MAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,kEAAkE,CAAC;QAC/E,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,gEAKC;AAED,MAAa,kBAAmB,SAAQ,eAAe;IACrD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,gDAKC;AAED,MAAa,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAa;QACvB,MAAM,GAAG,GAAG,qBAAqB,CAAC;QAClC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,sDAKC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,GAAa,EAAE,OAAiB;QAC1C,MAAM,GAAG,GAAG,kCAAkC,IAAA,qBAAa,EAAC,OAAO,CAAC,GAAG,CAAC;QACxE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AALD,kDAKC"}
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":"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"}
1
+ {"version":3,"file":"DecodeStream.js","sourceRoot":"","sources":["../../../../../src/core/streams/DecodeStream.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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":"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"}
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,sCAAsD;AACtD,sDAA8C;AAE9C;;;;;;GAMG;AAEH,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,UAAU;AACV,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAEtC;;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;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,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;QAChC,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,CAAC;QACZ,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdfme/pdf-lib",
3
- "version": "5.5.9",
3
+ "version": "5.5.10-dev.5",
4
4
  "sideEffects": false,
5
5
  "author": "hand-dot",
6
6
  "license": "MIT",
@@ -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);