diff --git a/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c b/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c
index e3bfca9aa9e442d692b357023a136d7f32a0a6d1..bc12e230883bcd5ad9e8fdef21eed2afabcdfbb0 100644
--- a/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c
+++ b/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c
@@ -69,6 +69,7 @@ void gnrc_icmpv6_demux(gnrc_netif_t *netif, gnrc_pktsnip_t *pkt)
 
     if (icmpv6->size < sizeof(icmpv6_hdr_t)) {
         DEBUG("icmpv6: packet too short.\n");
+        gnrc_pktbuf_release(pkt);
         return;
     }