MKVToolNix v28.2.0 released

Hey,

unfortunately I have to release a third time within a week: this time due to a use-after-free bug in all programs that make up the MKVToolNix package. This type of vulnerability allows arbitrary code execution using specially crafted Matroska files. It was introduced in v5.5.0 and affects all following releases up to and including the latest one, v28.1.0. Hence today’s bug fix release.

You can download the source code or one of the binaries. The Windows binaries as well as the Linux AppImage are available already. The macOS binaries and the other Linux binaries are still being built and will be available of the course of the next couple of hours.

Here are the NEWS since the previous release:

Bug fixes

  • mkvmerge, mkvinfo, mkvextract, mkvpropedit, MKVToolNix GUI’s info tool &
    chapter editor: fixed a case of memory being accessed after it had been
    freed earlier. This can be triggered by specially crafted Matroska files and
    lead to arbitrary code execution. The vulnerability was reported as Cisco
    TALOS 2018-0694 on 2018-10-25.

Have fun :)

MKVToolNix v28.1.0 released

Hey,

due to an unfortunate bug in the AV1 sequence header parser in release 28.0.0, here’s a small bug fix update: MKVToolNix v28.1.0.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available of the course of the next couple of hours.

Here are the NEWS since the previous release:

Bug fixes

  • mkvmerge: AV1 parser: fixed an error in the sequence header parser if
    neither the reduced_still_picture_header nor the
    frame_id_numbers_present_flag is set. Part of the fix for #2410.
  • mkvmerge: AV1 parser: when creating the av1C structure for the Codec
    Private element the sequence header OBU wasn’t copied completely: its common
    data (type field & OBU size among others) was missing. Part of the fix for
    #2410.
  • mkvmerge: Matroska reader, AV1: mkvmerge will try to re-create the av1C
    data stored in Codec Private when reading AV1 from Matroska or WebM files
    created by mkvmerge v28.0.0. Part of the fix for #2410.
  • MKVToolNix GUI: info tool: the tool will no longer stop scanning elements
    when an EBML Void element is found after the first Cluster element. Fixes
    #2413.

Have fun :)

MKVToolNix v28.0.0 released

Hey,

here is MKVToolNix v28.0.0: the first release to support AV1 in its finalized form. mkvmerge can read it from Matroska/WebM, MP4, IVF container files and from raw OBU streams. mkvextract will extract it to IVF files. Apart from that a couple of bugs were fixed and usabitliy enhancements made.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available of the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • mkvmerge: AV1 parser: updated the code for the finalized AV1 bitstream
    specification. Part of the implementation of #2261.
  • mkvmerge: AV1 packetizer: updated the code for the finalized AV1-in-Matroska
    & WebM mapping specification. Part of the implementation of #2261.
  • mkvmerge: AV1 support: the --engage enable_av1 option has been removed
    again. Part of the implementation of #2261.
  • mkvmerge: MP4 reader: added support for AV1. Part of the implementation of
    #2261.
  • mkvmerge: DTS: implemented dialog normalization gain removal for extension
    substreams. Implements #2377.
  • mkvmerge, mkvextract: simple text subtitles: added a workaround for simple
    text subtitle tracks that don’t contain a duration. Implements #2397.
  • mkvextract: added support for extracting AV1 to IVF. Part of the
    implementation of #2261.
  • mkvextract: IVF extractor (AV1, VP8, VP9): precise values will be used for
    the frame rate numerator & denominator header fields for certain well-known
    values of the track’s default duration.
  • mkvmerge: VP9: mkvmerge will now create codec private data according to the
    VP9 codec mapping described in the WebM specifications. Implements #2379.
  • MKVToolNix GUI: automatic scaling for high DPI displays is activated if the
    GUI is compiled with Qt ≥ 5.6.0. Fixes #1996 and #2383.
  • MKVToolNix GUI: added a menu item ("Help" → "System information") for
    displaying information about the system MKVToolNix is running on in order to
    make debugging easier.
  • MKVToolNix GUI: multiplexer, header editor: the user can enter a list of
    predefined track names in the preferences. She can later select from them in
    "track name" combo box. Implements #2230.

Bug fixes

  • mkvmerge: JSON identification: fixed a bug when removing invalid UTF-8 data
    from strings before they’re output as JSON. Fixes #2398.
  • mkvmerge: MP4/QuickTime reader: fixed handling of PCM audio with FourCC
    in24. Fixes #2391.
  • mkvmerge: MPEG transport stream reader, teletext subtitles: the decision
    whether or not to keep frames around in order to potentially merge them with
    the following frame is made sooner. That avoids problems if there are large
    gaps between teletext subtitle frames which could lead to frames being
    interleaved too late. Fixes #2393.
  • mkvextract: IVF extractor (AV1, VP8, VP8): the frame rate header fields
    weren’t clamped to 16 bits properly causing wrong frame rates to be written
    in certain situations.
  • mkvpropedit, MKVToolNix GUI’s header editor: fixed file corruption when a
    one-byte space must be covered with a new EBML void element but all
    surrounding elements have a "size length" field that’s eight bytes long
    already. Fixes #2406.

Have fun :)

MKVToolNix v27.0.0 released

Hey,

I’ve just released MKVToolNix v27.0.0. This release is smallish but important due to two bug fixes. The first is an annoying crash easily triggered on Windows simply by using the program for a while. The second is indubitably more important: mkvmerge was corrupting E-AC-3 frames when the “dialog normalization gain removal” functionality was used.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available of the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • mkvmerge: chapters: the timestamps of chapters read from containers or from
    chapter files can be adjusted (multiplication and addition) with the new
    --chapter-sync option or using the special track ID -2 for the existing
    --sync option. Part of the implementation of #2358.
  • MKVToolNix GUI: multiplexer: adjusted & added controls for mkvmerge’s new
    feature of being able to adjust chapter timestamps. Part of the
    implementation of #2358.
  • MKVToolNix GUI: multiplexer: the GUI can now ask for confirmation when the
    user is about to create a file that won’t contain audio tracks. It does this
    by default if at least one source file contains an audio track. Implements
    #2380.

Bug fixes

  • mkvmerge: AC-3: dialog normalization gain removal was corrupting E-AC-3
    frames irreversibly by writing checksums in places where they didn’t
    belong. Additionally only the first E-AC-3 frame in a Matroska was processed
    but not additional dependent frames in the same block. Fixes #2386.
  • MKVToolNix GUI: fixed a leak of Windows font resources leading to a general
    slowdown and subsequent crash. Fixes #2372.

Have fun :)