The following subsections describe specific security implications of different IPv6 options and provide advice regarding filtering packets that contain such options.
The general security implications of IPv6 options are closely related to those discussed in
Section 3.2 for IPv6 EHs. Essentially, packets that contain IPv6 options might need to be processed by an IPv6 router's general-purpose CPU and, hence, could present a Distributed Denial-of-Service (DDoS) risk to that router's general-purpose CPU (and thus to the router itself). For some architectures, a possible mitigation would be to rate-limit the packets that are to be processed by the general-purpose CPU (see, e.g., [
Cisco-EH]).
The following subsections contain a description of each of the IPv6 options that have so far been specified, a summary of the security implications of each of such options, a discussion of possible interoperability implications if packets containing such options are discarded, and specific advice regarding whether packets containing these options should be permitted.
This option is used when necessary to align subsequent options and to pad out the containing header to a multiple of 8 octets in length.
Discarding packets that contain this option would potentially break any protocol that relies on IPv6 options.
Intermediate systems should not discard packets based on the presence of this option.
This option is used when necessary to align subsequent options and to pad out the containing header to a multiple of 8 octets in length.
Because of the possible size of this option, it could be leveraged as a large-bandwidth covert channel.
Discarding packets that contain this option would potentially break any protocol that relies on IPv6 options.
Intermediate systems should not discard IPv6 packets based on the presence of this option.
The Tunnel Encapsulation Limit option can be employed to specify how many further levels of nesting the packet is permitted to undergo.
Discarding packets based on the presence of this option could result in tunnel traffic being discarded.
Intermediate systems should not discard packets based on the presence of this option.
The Router Alert option [
RFC 2711] is employed by a number of protocols, including the Resource reSerVation Protocol (RSVP) [
RFC 2205], Multicast Listener Discovery (MLD) [
RFC 2710] [
RFC 3810], Multicast Router Discovery (MRD) [
RFC 4286], and General Internet Signaling Transport (GIST) [
RFC 5971]. Its usage is discussed in detail in [
RFC 6398].
Since this option causes the contents of the packet to be inspected by the handling device, this option could be leveraged for performing DoS attacks. The security implications of the Router Alert option are discussed in detail in [
RFC 6398].
Discarding packets that contain this option would break any protocols that rely on them, such as RSVP and multicast deployments. Please see
Section 4.4.4.3 for further details.
Packets containing this option should be permitted in environments where support for RSVP, multicast routing, or similar protocols is required.
This option is used for encoding explicit packet Sensitivity Labels on IPv6 packets. It is intended for use only within Multi-Level Secure (MLS) networking environments that are both trusted and trustworthy.
Presence of this option in a packet does not by itself create any specific new threat. Packets with this option ought not normally be seen on the global public Internet.
If packets with this option are discarded or if the option is stripped from the packet during transmission from source to destination, then the packet itself is likely to be discarded by the receiver because it is not properly labeled. In some cases, the receiver might receive the packet but associate an incorrect Sensitivity Label with the received data from the packet whose Common Architecture Label IPv6 Security Option (CALIPSO) was stripped by a middlebox (such as a packet scrubber). Associating an incorrect Sensitivity Label can cause the received information to be handled either as more sensitive than it really is ("upgrading") or as less sensitive than it really is ("downgrading"), either of which is problematic. As noted in [
RFC 5570], IPsec [
RFC 4301] [
RFC 4302] [
RFC 4303] can be employed to protect the CALIPSO.
Recommendations for handling the CALIPSO depend on the deployment environment rather than on whether an intermediate system happens to be deployed as a transit device (e.g., IPv6 transit router).
Explicit configuration is the only method via which an intermediate system can know whether that particular intermediate system has been deployed within an MLS environment. In many cases, ordinary commercial intermediate systems (e.g., IPv6 routers and firewalls) are the majority of the deployed intermediate systems inside an MLS network environment.
For intermediate systems that DO NOT implement [
RFC 5570], there should be a configuration option to either (a) drop packets containing the CALIPSO or (b) ignore the presence of the CALIPSO and forward the packets normally. In non-MLS environments, such intermediate systems should have this configuration option set to (a) above. In MLS environments, such intermediate systems should have this option set to (b) above. The default setting for this configuration option should be set to (a) above, because MLS environments are much less common than non-MLS environments.
For intermediate systems that DO implement [
RFC 5570], there should be configuration options (a) and (b) from the preceding paragraph and also a third configuration option (c) to process packets containing a CALIPSO as per [
RFC 5570]. When deployed in non-MLS environments, such intermediate systems should have this configuration option set to (a) above. When deployed in MLS environments, such intermediate systems should have this configuration option set to (c). The default setting for this configuration option
MAY be set to (a) above, because MLS environments are much less common than non-MLS environments.
This option is employed in the (experimental) Simplified Multicast Forwarding (SMF) for unique packet identification for IPv6 Identification-based DPD (I-DPD) and as a mechanism to guarantee non-collision of hash values for different packets when Hash-based DPD (H-DPD) is used.
None. The use of transient numeric identifiers is subject to the security and privacy considerations discussed in [
NUMERIC-IDS].
Dropping packets containing this option within a Mobile Ad Hoc Network (MANET) domain would break SMF. However, dropping such packets at the border of such domain would have no negative impact.
Intermediate systems that are not within a MANET domain should discard packets that contain this option.
This option is employed to convey sequence numbers and timing information in IPv6 packets as a basis for measurements.
These are discussed in [
RFC 8250]. Additionally, since this option employs transient numeric identifiers, implementations may be subject to the issues discussed in [
NUMERIC-IDS].
Dropping packets containing this option will result in negative interoperability implications for traffic employing this option as a basis for measurements.
Intermediate systems should not discard packets based on the presence of this option.
The RPL Option provides a mechanism to include routing information in each datagram that a RPL router forwards.
This option can survive outside of a RPL instance. As a result, discarding packets based on the presence of this option would break some use cases for RPL (see [
RFC 9008]).
Intermediate systems should not discard IPv6 packets based on the presence of this option.
This IP option is used in the specification of Quick-Start for TCP and IP, which is an experimental mechanism that allows transport protocols, in cooperation with routers, to determine an allowed sending rate at the start and, at times, in the middle of a data transfer (e.g., after an idle period) [
RFC 4782].
This option is specified in [
RFC 4782] on the "Experimental" track.
Section 9.6 of
RFC 4782 notes that Quick-Start is vulnerable to two kinds of attacks:
-
attacks to increase the routers' processing and state load and
-
attacks with bogus Quick-Start Requests to temporarily tie up available Quick-Start bandwidth, preventing routers from approving Quick-Start Requests from other connections
We note that if routers in a given environment do not implement and enable the Quick-Start mechanism, only the general security implications of IP options (discussed in
Section 4.2) would apply.
If packets with IPv6 Quick Start options are blocked, the host trying to establish a TCP connection will fall back to not including the Quick Start option -- this means that the feature will be disabled, and additional delays in connection establishment will be introduced (as discussed in
Section 4.7.2 of
RFC 4782). We note, however, that Quick-Start has been proposed as a mechanism that could be of use in controlled environments and not as a mechanism that would be intended or appropriate for ubiquitous deployment in the global Internet [
RFC 4782].
Intermediate systems should not discard IPv6 packets based on the presence of this option.
No information has been found about this option type.
No information has been found about this option type.
No information has been found about this option type; hence, it has been impossible to perform the corresponding security assessment.
Intermediate systems should discard packets that contain this option.
The RPL Option provides a mechanism to include routing information in each datagram that a RPL router forwards.
This option was originally specified in [
RFC 6553]. It has been deprecated by [
RFC 9008].
This option is meant to be employed within a RPL instance. As a result, discarding packets based on the presence of this option outside of a RPL instance will not result in interoperability implications.
Intermediate systems should discard packets that contain a RPL Option.
This option is used with the Multicast Protocol for Low power and Lossy Networks (MPL), which provides IPv6 multicast forwarding in constrained networks.
This option is specified in [
RFC 7731] and is meant to be included only in Hop-by-Hop Options headers.
Dropping packets that contain an MPL Option within an MPL network would break the MPL. However, dropping such packets at the border of such networks will have no negative impact.
Intermediate systems should not discard packets based on the presence of this option. However, since this option has been specified for the Hop-by-Hop Options header, such systems should consider the discussion in
Section 3.5.1.
The Endpoint Identification option was meant to be used with the Nimrod routing architecture [
NIMROD-DOC] but has never seen widespread deployment.
Intermediate systems should discard packets that contain this option.
This option is employed by the Identifier-Locator Network Protocol for IPv6 (ILNPv6) to provide protection against off-path attacks for packets when ILNPv6 is in use and as a signal during initial network-layer session creation that ILNPv6 is proposed for use with this network-layer session, rather than classic IPv6.
Discarding packets that contain this option will break ILNPv6 deployments.
Intermediate systems should not discard packets based on the presence of this option.
This option is used by an Edge Router to identify the subscriber premises in scenarios where several subscriber premises may be logically connected to the same interface of an Edge Router.
Since this option is meant to be used when tunneling Neighbor Discovery messages in some broadband network deployment scenarios, discarding packets based on the presence of this option at intermediate systems will result in no interoperability implications.
Intermediate systems should discard packets that contain this option.
The Jumbo Payload option provides the means for supporting payloads larger than 65535 bytes.
There are no specific issues arising from this option, except for improper validity checks of the option and associated packet lengths.
Discarding packets based on the presence of this option will cause IPv6 jumbograms to be discarded.
An operator should permit this option only in specific scenarios in which support for IPv6 jumbograms is required.
The Home Address option is used by a Mobile IPv6 node while away from home to inform the recipient of the mobile node's home address.
There are no (known) additional security implications, other than those discussed in [
RFC 6275].
Discarding IPv6 packets based on the presence of this option will break Mobile IPv6.
Intermediate systems should not discard IPv6 packets based on the presence of this option.
This option is employed with the (experimental) Depth-First Forwarding (DFF) in unreliable networks.
Dropping packets containing this option within a routing domain that is running DFF would break DFF. However, dropping such packets at the border of such domains will have no operational or interoperability implications.
Intermediate systems that do not operate within a routing domain that is running DFF should discard packets containing this option.
These options can be employed for performing RFC3692-style experiments. It is only appropriate to use these values in explicitly configured experiments; they must not be shipped as defaults in implementations.
These options are specified in [
RFC 4727] in the context of RFC3692-style experiments.
The specific security implications will depend on the specific use of these options.
For obvious reasons, discarding packets that contain these options limits the ability to perform legitimate experiments across IPv6 routers.
Operators should determine, according to their own circumstances, whether to discard packets containing these IPv6 options.
We refer to IPv6 options that have not been assigned an IPv6 Option Type in the corresponding registry, which is [
IANA-IPV6-PARAM], as "unknown IPv6 options".
New IPv6 options may be specified as part of future protocol work.
The processing of unknown IPv6 options is specified in [
RFC 8200].
For obvious reasons, it is impossible to determine specific security implications of unknown IPv6 options.
Discarding unknown IPv6 options may slow down the deployment of new IPv6 options. As noted in [
IPv6-OPTIONS], the corresponding IANA registry, which is [
IANA-IPV6-PARAM], should be monitored such that IPv6 option filtering rules are updated as new IPv6 options are standardized.
Operators should determine, according to their own circumstances, whether to discard packets containing unknown IPv6 options.