Bug 1104243
| Summary: | perl-LDAP sets wrong length for function _sendmesg | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jaroslav Aster <jaster> | ||||
| Component: | perl-LDAP | Assignee: | Petr Pisar <ppisar> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Jaroslav Aster <jaster> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 7.0 | CC: | jplesnik, ppisar | ||||
| Target Milestone: | rc | Keywords: | Patch | ||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | perl-LDAP-0.56-3.el7 | Doc Type: | Bug Fix | ||||
| Doc Text: |
Cause:
Using Perl LDAP client with SASL authentication mechanism.
Consequence:
LDAP server can receive corrupted LDAP queries.
Fix:
Net::LDAP Perl module was fixed to pass actual query
length instead of fixed 1500 bytes to the syswrite()
function which can be redefined by other protocol layers,
like SASL authentication implementation.
Result:
Net::LDAP client does not corrupt sent LDAP queries.
|
Story Points: | --- | ||||
| Clone Of: | 1104069 | Environment: | |||||
| Last Closed: | 2015-03-05 07:13:38 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Jaroslav Aster
2014-06-03 15:27:55 UTC
Version-Release number of selected component (if applicable): perl-LDAP-0.56-2.el7 The fix is:
--- /usr/share/perl5/Net/LDAP.pm.orig 2014-06-03 08:52:01.194328356 -0400
+++ /usr/share/perl5/Net/LDAP.pm 2014-06-03 08:53:04.561148330 -0400
@@ -801,7 +801,8 @@ sub _sendmesg {
my $to_send = \( $mesg->pdu );
my $offset = 0;
while($offset < length($$to_send)) {
- my $n = syswrite($socket, substr($$to_send, $offset, 15000), 15000)
+ my $s = substr($$to_send, $offset, 15000);
+ my $n = syswrite($socket, $s, length($s))
or return _error($ldap, $mesg, LDAP_LOCAL_ERROR,"$!");
$offset += $n;
}
Created attachment 924494 [details]
Upstream fix ported to 0.56
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-0333.html |