Viber is a calling and messaging app that connects people - no matter who they are, or where they’re from. Each month, hundreds of millions of people connect, for free, with their loved ones via messaging, high-quality voice and video calls, and more. All one-on-one Viber calls and personal chats, and all group chats are protected by built-in end-to-end encryption, so you can be sure that your conversations are always secure.
Viber for iOS doesn't validate the logical screen dimensions in the header of a received GIF. When the user opens the GIF, Viber builds a placeholder image sized from those dimensions by calling +[UIImage(Utils) imageWithColor:size:opaque:] (in ViberCoreUILegacy), which calls UIKit’s UIGraphicsBeginImageContextWithOptions. If the width or the height is zero, UIKit can't create the bitmap and raises an NSInternalInconsistencyException. Viber doesn't catch it, so the app aborts with SIGABRT on the main thread. Viber's servers relay the GIF unchanged, so any user can deliver it to any other user. Every GIF with a zero-width or zero-height canvas tested this way crashed, static and animated alike.