# Security Policy

## Reporting a vulnerability

The iproute2 suite of utilities is tightly coupled with the Linux
kernel networking. Therefore the bug reporting process mirrors
the Linux kernel. Most security problems reported related to
iproute2 are really Linux kernel issues (a.k.a Shoot the messenger)
and are best handled via
[Linux Security Bugs](https://docs.kernel.org/process/security-bugs.html).

For other issues please report bugs to netdev@vger.kernel.org
and include an example script.

## Supported Versions

There are no official "Long Term Support" versions for iproute2.
The iproute2 version matches the Linux kernel versions.
There will be occasional maintenance releases for serious
issues if found. Users who need support are encouraged
to use the version of iproute2 found in major distributions.
