Bug 76540

Summary: rules with /8 subnet masks are not correct
Product: [Retired] Red Hat Linux Reporter: Richard Keech <rkeech>
Component: iptablesAssignee: Thomas Woerner <twoerner>
Status: CLOSED NOTABUG QA Contact: Ben Levenson <benl>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: nobody
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-07-01 09:49:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Richard Keech 2002-10-23 01:57:48 UTC
Description of Problem:

The application of a filtering rule which includes a subnet with an
eight-bit prefix length, eg 1/8 is not implemented correctly.


Version-Release number of selected component (if applicable):

This has been shown on 7.3 and 8.0 with 2.4.18-17 and 2.4.18-10.


How Reproducible:

try this:

iptables -N test
iptables -A test -s 1/8       -j ACCEPT


Actual Results:

iptables -L test
Chain test (0 references)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/8            anywhere


Expected Results:

iptables -L test
Chain test (0 references)
target     prot opt source               destination
ACCEPT     all  --  1.0.0.0/8            anywhere


Additional Information:

It doesn't seem to matter which /8 subnet is entered in this way,
the result is an apparent 0/8 subnet.

I believe this could be a minor security risk.

Comment 1 Michael Schwendt 2002-10-25 20:02:57 UTC
1/8 is not a valid (IPv4) source. Nowhere is specified that you could omit
trailing or leading numbers. Why don't you use...?

  iptables -A test -s 1.0.0.0/8       -j ACCEPT

And from the manual:

       -s, --source [!] address[/mask]
              Source specification.   Address  can  be  either  a
              hostname,  a  network  name, or a plain IP address.
              The mask can be either a network mask  or  a  plain
              number,  specifying  the  number of 1's at the left
              side of the network mask.  Thus, a mask  of  24  is
              equivalent to 255.255.255.0.  A "!" argument before
              the address specification inverts the sense of  the
              address.  The  flag --src is a convenient alias for
              this option.