Skip to content

v0.17.9

Latest

Choose a tag to compare

@w4nderlust w4nderlust released this 16 Aug 22:06

Security fix

  • Fix RCE via insecure deserialization in checkpoint loading (GHSA-q85h-wmmp-59p8, high severity): MultiNodeCheckpoint.load() called torch.load(..., weights_only=False) unconditionally when resuming training from a checkpoint directory. Because --model_resume_path (CLI) and LudwigModel.load(from_checkpoint=True) (public API) accept user-supplied paths with only an existence check, a crafted latest.ckpt containing a __reduce__ gadget could execute arbitrary code. Fixed by setting weights_only=True, which uses PyTorch's restricted unpickler — sufficient for all standard optimizer (Adam, SGD) and scheduler state.

Bug fixes

  • Fix Ray Data failing to read relative local paths: read_remote_parquet now resolves relative local paths to absolute before passing them to Ray Data. Ray 2.56+ schedules read tasks on remote workers whose working directory may differ from the driver, causing "no files found" errors for relative paths.
  • Fix lint errors from ruff 0.16.2 (RUF036): Move None to the end of type unions across schema and utility files.
  • Remove broken star history chart embed from README (GitHub restricted stargazer API access on 2026-06-30).