Skip to content

Releases: Aladdin-R-D/lwext4

lwext4 v1.0.2

Choose a tag to compare

@ald-rd ald-rd released this 21 Oct 10:27
f4f1b02

Release focuses on security and robustness improvements: addressing memory safety issues, invalid filesystem metadata handling, and potential crashes when processing malformed ext4 images.

Bug fixes:

  • Out-of-Bounds Read in ext4_dir_dx_checksum(): added validation of directory entry counts against their limits in ext4_dir_dx_csum_verify() and ext4_dir_set_dx_csum() to prevent reading beyond the directory block buffer (#169, #6);
  • Out-of-Bounds Write in ext4_fs_init_block_bitmap(): added validation of block bitmap addresses against block group boundaries to prevent integer underflow and out-of-bounds bitmap accesses (#170, #6);
  • Heap-Buffer-Overflow in ext4_fs_init_block_bitmap(): added validation of inode table boundaries and restricted bitmap modifications to valid block ranges, preventing out-of-bounds memory accesses (#171, #6);
  • Out-of-Bounds Write in ext4_fs_mark_bitmap_end(): added block group size validation and changed bitmap bit indices to unsigned integers to prevent invalid memory accesses caused by integer conversion (#172, #6);
  • Out-of-Bounds Write in ext4_fs_init_block_bitmap(): added inode bitmap address validation to prevent out-of-bounds writes caused by corrupted block group descriptors (#173, #6);
  • Floating Point Exception (FPE) in ext4_fs_init_inode_table(): extended ext4_sb_check() to validate log_block_size and inode_size, preventing division by zero when processing malformed superblocks (#174, #6).
  • NULL pointer dereference / Use-After-Free in ext4_find_extent(): improved error handling to prevent successful returns after the extent path has been freed; added NULL pointer validation in ext4_ext_insert_extent(), ext4_extent_remove_space(), and ext4_extent_get_blocks() GHSA-fgwm-5852-vw84 (#6);

Documentation:

  • SECURITY.md has been added.

lwext4 v1.0.1

Choose a tag to compare

@ald-rd ald-rd released this 06 Mar 08:28
c5a4800

Release focuses on robustness and security improvements discovered through fuzz-testing (AFL++) and static analysis (Svace).

Bug fixes (fuzz testing):

  • Out-of-Bounds Read in "ext4_ext_binsearch_idx()": added validation of "eh_entries" against "eh_entries_max" in extent tree traversal, preventing out-of-bounds read on corrupted or fuzzed ext4 images (#1) ;
  • NULL pointer dereference in ext4_dir_en_get_name_len(): added NULL check for directory entry pointer before accessing name_len field when processing malformed directory entries (#1) ;
  • FPE in ext4_block_set_lb_size(): added block size validation (1KiB - 64KiB) during mount to prevent division by zero when an image contains an invalid logical block size (#2) ;
  • Out-of-Bounds Write in ext4_bmap_bit_set(): added bounds checking for block group count and inodes-per-group against block bitmap size to prevent writes beyond the allocated buffer (#2) ;
  • Double-Free in ext4_bcache_drop_buf(): fixed buffer removal logic in ext4_block_cache_shake() to properly handle referenced buffers in the LRU RB-tree, preventing double-free when the block cache is full (#2) ;

Bug fixes (Svace static analysis):

  • NULL pointer dereference in __ext4_trans_start(): added NULL check for mount point pointer before dereferencing (#3) ;
  • NULL pointer dereference in ext4_find_extent(): added NULL check for orig_path argument before dereferencing (#3) ;
  • Division by zero in create_fs_aux_info(): added validation that block_size is non-zero before using it as a divisor in ext4_mkfs (#3) ;

Documentation:

  • Some summary information in README.md has been adapted for further support of the repository within the fork: Aladdin-R-D/lwext4