https://bugs.exim.org/show_bug.cgi?id=3027

            Bug ID: 3027
           Summary: exim -bh seems to use "expanded" IPv6 addresses
           Product: Exim
           Version: 4.96
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: General execution
          Assignee: unalloca...@exim.org
          Reporter: bugs_e...@henk.geekmail.org
                CC: exim-dev@lists.exim.org

Exim seems to work with "expanded" IPv6 addresses when invoked with -bh.
"Expanded" means with the full hextets instead of zeros being omitted and the
longest sequence of 0 hextets being replaced by ::, e.g.
2001:0db8:1234:1234:1234:0000:0000:0001
instead of
2001:db8:1234:1234:1234::1

It can be seen in the following example:
% exim -C /dev/null -v -bh 2001:db8:1234:1234:1234::1

**** SMTP testing session as if from host
2001:0db8:1234:1234:1234:0000:0000:0001
**** but without any ident (RFC 1413) callback.
**** This is not for real!

host in hosts_connection_nolog? no (option unset)
LOG: smtp_connection MAIN
  SMTP connection from [2001:0db8:1234:1234:1234:0000:0000:0001]


This does not seem to happen during "normal" operations:
# cat tmp/2023-09-20_exim_config.conf
daemon_smtp_ports = 1234
spool_directory = /home/henk/tmp/exim_spool_test


# exim -C tmp/2023-09-20_exim_config.conf -d -bdf
Exim version 4.96 uid=0 gid=0 pid=6597 D=f7715cfd
Support for: crypteq iconv() IPv6 GnuTLS TLS_resume move_frozen_messages DANE
DKIM DNSSEC Event I18N OCSP PIPECONNECT PRDR Queue_Ramp SOCKS SRS TCP_Fast_Open
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz
dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 external plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Compiler: GCC [12.2.0]
Library version: Glibc: Compile: 2.36
                        Runtime: 2.36
Library version: BDB: Compile: Berkeley DB 5.3.28: (September  9, 2013)
                      Runtime: Berkeley DB 5.3.28: (September  9, 2013)
Library version: GnuTLS: Compile: 3.7.9
                         Runtime: 3.7.9
Library version: IDN2: Compile: 2.3.3
                       Runtime: 2.3.3
Library version: Stringprep: Compile: 1.41
                             Runtime: 1.41
Library version: PCRE2: Compile: 10.42
                        Runtime: 10.42 2022-12-11
Total 14 lookups
WHITELIST_D_MACROS: "OUTGOING"
TRUSTED_CONFIG_LIST: "/etc/exim4/trusted_configs"
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=6597
  auxiliary group list: <none>
LOG: MAIN
  Warning: purging the environment.
 Suggested action: use keep_environment.
configuration file is tmp/2023-09-20_exim_config.conf
log selectors = 00000ffc 64205022 0000000c
cwd=/root 5 args: exim -C tmp/2023-09-20_exim_config.conf -d -bdf
trusted user
admin user
dropping to exim gid; retaining priv uid
originator: uid=0 gid=0 login=root name=root
LOG: MAIN
  Warning: No server certificate defined; will use a selfsigned one.
 Suggested action: either install a certificate or change tls_advertise_hosts
option
fresh-exec forking for cipher-validate
fresh-exec forked for cipher-validate: 6599
postfork: cipher-validate
changed uid/gid: calling tls_validate_require_cipher
  uid=106 gid=111 pid=6599
  auxiliary group list: <none>
>>>>>>>>>>>>>>>> Exim pid=6599 (cipher-validate) terminating with rc=0 
>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
tls_validate_require_cipher child 6599 ended: status=0x0
 6597 creating notifier socket
 6597  @/home/henk/tmp/exim_spool_test/exim_daemon_notify
 6597 listening on all interfaces (IPv6) port 1234
 6597 listening on all interfaces (IPv4) port 1234
 6597 pid written to /run/exim4/exim.pid
 6597 changed uid/gid: running as a daemon
 6597   uid=106 gid=111 pid=6597
 6597   auxiliary group list: 111
 6597 LOG: MAIN
 6597   exim 4.96 daemon started: pid=6597, no queue runs, listening for SMTP
on port 1234 (IPv6 and IPv4)
 6597 set_process_info:  6597 daemon(4.96): no queue runs, listening for SMTP
on port 1234 (IPv6 and IPv4)
 6597 GnuTLS global init required
 6597 TLS: basic cred init, server
 6597 TLS: generating selfsigned server cert
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<2>: Disabling X.509 extensions.
 6597 GnuTLS<2>: signing structure using RSA-SHA256
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 GnuTLS<3>: ASSERT:
../../../lib/x509/x509_ext.c[gnutls_subject_alt_names_get]:111
 6597 GnuTLS<3>: ASSERT: ../../../lib/x509/x509.c[get_alt_name]:2012
 6597 GnuTLS<3>: ASSERT: ../../../lib/nettle/mpi.c[wrap_nettle_mpi_print]:60
 6597 TLS: preloading CA bundle for server
 6597 GnuTLS<3>: ASSERT:
../../../lib/x509/dn.c[_gnutls_x509_compare_raw_dn]:1039
 6597 GnuTLS<3>: ASSERT:
../../../lib/x509/dn.c[_gnutls_x509_compare_raw_dn]:1039
 6597 GnuTLS<3>: ASSERT:
../../../lib/x509/dn.c[_gnutls_x509_compare_raw_dn]:1039
 6597 Added 142 certificate authorities
 6597 TLS: not preloading CRL for server
 6597 TLS: preloading cipher list for server: NULL
 6597 GnuTLS using default session cipher/priority "NORMAL"
 6597 GnuTLS<2>: added 6 protocols, 29 ciphersuites, 19 sig algos and 10 groups
into priority list
 6597 daemon running with uid=106 gid=111 euid=106 egid=111
 6597 Listening...
 6597 Connection request from 2001:1620:ae4:1::66f port 41112
 6597 search_tidyup called
 6597 daemon forking for daemon-accept
 6597 daemon forked for daemon-accept: 6618
 6597 1 SMTP accept process running
 6597 Listening...
 6618 postfork: daemon-accept
 6618 sender_fullhost = [2001:1620:ae4:1::66f]
 6618 sender_rcvhost = [2001:1620:ae4:1::66f]
 6618 Process 6618 is handling incoming connection from [2001:1620:ae4:1::66f]
 6618 host in host_lookup? no (option unset)
 6618 set_process_info:  6618 handling incoming connection from
[2001:1620:ae4:1::66f]
 6618 host in host_reject_connection? no (option unset)
 6618 host in sender_unqualified_hosts? no (option unset)
 6618 host in recipient_unqualified_hosts? no (option unset)
 6618 host in helo_verify_hosts? no (option unset)
 6618 host in helo_try_verify_hosts? no (option unset)
 6618 host in helo_accept_junk_hosts? no (option unset)
 6618 host in pipelining_connect_advertise_hosts? yes (matched "*")
 6618 SMTP>> 220 frustcomp.hnjs.home.arpa ESMTP Exim 4.96 Thu, 21 Sep 2023
13:22:48 +0200
 6618 TCP_INFO getsockopt: Success
 6618 Process 6618 is ready for new message
 6618 smtp_setup_msg entered
 6618 SMTP>> 421 frustcomp.hnjs.home.arpa lost input connection
 6618 LOG: smtp_connection MAIN
 6618   SMTP connection from [2001:1620:ae4:1::66f] lost D=7s
 6618 search_tidyup called
 6618 SMTP>>(close on process exit)
 6618 >>>>>>>>>>>>>>>> Exim pid=6618 (daemon-accept) terminating with rc=1
>>>>>>>>>>>>>>>>
 6597 child 6618 ended: status=0x100
 6597   normal exit, 1
 6597 0 SMTP accept processes now running
 6597 Listening...
^C 6597 SIGTERM/SIGINT seen
 6597 daemon forking for daemon-del-pidfile
 6597 daemon forked for daemon-del-pidfile: 6686
 6686 postfork: daemon-del-pidfile
 6686 exec /usr/sbin/exim4 -C tmp/2023-09-20_exim_config.conf -d=0xf7795cfd
-MCd daemon-del-pidfile -oPX
 6597 search_tidyup called
 6597 >>>>>>>>>>>>>>>> Exim pid=6597 (daemon) terminating with rc=0
>>>>>>>>>>>>>>>>



This is an issue when trying to debug config problems with lookups of IPv6
addresses in $sender_host_address.

Expectation is that the handling of (IPv6) addresses is exactly the same when
in any of the testing/debugging modes.
Exim should normalize the address in every case.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

-- 
## subscription configuration (requires account):
##   https://lists.exim.org/mailman3/postorius/lists/exim-dev.lists.exim.org/
## unsubscribe (doesn't require an account):
##   exim-dev-unsubscr...@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to