Ismaël Mejía created AVRO-4284:
----------------------------------

             Summary: [c] Enforce a maximum decompressed block size
                 Key: AVRO-4284
                 URL: https://issues.apache.org/jira/browse/AVRO-4284
             Project: Apache Avro
          Issue Type: Sub-task
          Components: c
    Affects Versions: 1.13.0
            Reporter: Ismaël Mejía


When reading a data file, {{lang/c/src/codec.c}} decompresses each block 
without bounding the output size: {{decode_deflate}} doubles the output buffer 
until the stream ends, {{decode_snappy}} allocates the attacker-declared 
uncompressed length, and {{decode_lzma}} doubles the buffer until done. The 
block is read in {{lang/c/src/datafile.c}}.

Enforce a configurable maximum decompressed size in each codec, defaulting to a 
runtime-safe value (overridable, e.g. via the AVRO_MAX_DECOMPRESS_LENGTH 
environment variable), and fail decoding with a clear error when a block would 
exceed it. Add a test with a high-ratio block.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to