Compare commits

...

2 Commits
rawhide ... f14

Author SHA1 Message Date
Kalev Lember b8d5aedaa1 Don't fill log files with repeating messages (#657658, #707412)
"rv=0x... for client" and "Card Not Inserted" should be DEBUG log level,
not ERROR.
2011-05-25 07:06:04 +03:00
Kalev Lember 6360140a1e Fixed a buffer overflow in ATR decoder (CVE-2010-4531)
http://labs.mwrinfosecurity.com/files/Advisories/mwri_pcsc-libccid-buffer-overflow_2010-12-13.pdf
2011-01-05 12:56:28 +02:00
3 changed files with 60 additions and 1 deletions

View File

@ -0,0 +1,24 @@
diff -up pcsc-lite-1.6.4/src/winscard.c.loglevel pcsc-lite-1.6.4/src/winscard.c
--- pcsc-lite-1.6.4/src/winscard.c.loglevel 2010-08-03 20:01:37.000000000 +0300
+++ pcsc-lite-1.6.4/src/winscard.c 2011-05-25 07:04:29.228709067 +0300
@@ -335,7 +335,7 @@ LONG SCardConnect(/*@unused@*/ SCARDCONT
{
if (!(dwStatus & SCARD_PRESENT))
{
- Log1(PCSC_LOG_ERROR, "Card Not Inserted");
+ Log1(PCSC_LOG_DEBUG, "Card Not Inserted");
return SCARD_E_NO_SMARTCARD;
}
diff -up pcsc-lite-1.6.4/src/winscard_svc.c.loglevel pcsc-lite-1.6.4/src/winscard_svc.c
--- pcsc-lite-1.6.4/src/winscard_svc.c.loglevel 2010-08-13 19:38:58.000000000 +0300
+++ pcsc-lite-1.6.4/src/winscard_svc.c 2011-05-25 07:04:29.228709067 +0300
@@ -279,7 +279,7 @@ static const char *CommandsText[] = {
#define WRITE_BODY(v) \
WRITE_BODY_WITH_COMMAND(CommandsText[header.command], v)
#define WRITE_BODY_WITH_COMMAND(command, v) \
- Log4(SCARD_S_SUCCESS == v.rv ? PCSC_LOG_DEBUG : PCSC_LOG_ERROR, "%s rv=0x%X for client %d", command, v.rv, filedes); \
+ Log4(PCSC_LOG_DEBUG, "%s rv=0x%X for client %d", command, v.rv, filedes); \
ret = MessageSend(&v, sizeof(v), filedes);
static void ContextThread(LPVOID newContext)

View File

@ -0,0 +1,23 @@
Index: src/atrhandler.c
===================================================================
--- src/atrhandler.c (revision 5369)
+++ src/atrhandler.c (revision 5370)
@@ -232,7 +232,7 @@
psExtension->ATR.HistoryLength = K;
memcpy(psExtension->ATR.HistoryValue, &pucAtr[p], K);
- p = p + K;
+ p += K;
/*
* Check to see if TCK character is included It will be included if
@@ -241,6 +241,9 @@
if (psExtension->CardCapabilities.AvailableProtocols & SCARD_PROTOCOL_T1)
TCK = pucAtr[p++];
+ if (p > MAX_ATR_SIZE)
+ return 0; /** @retval 0 Maximum attribute size */
+
memcpy(psExtension->ATR.Value, pucAtr, p);
psExtension->ATR.Length = p; /* modified from p-1 */

View File

@ -2,7 +2,7 @@
Name: pcsc-lite
Version: 1.6.4
Release: 2%{?dist}
Release: 4%{?dist}
Summary: PC/SC Lite smart card framework and applications
Group: System Environment/Daemons
@ -14,6 +14,10 @@ Patch0: %{name}-1.4-docinst.patch
Patch1: %{name}-1.5.5-rpath64.patch
# Disable pcscd on-demand startup (#653903)
Patch2: %{name}-1.6.4-noautostart.patch
Patch3: %{name}-CVE-2010-4531.patch
# Avoid filling log files with "rv=0x... for client" and "Card Not Inserted"
# messages (#657658, #707412)
Patch4: pcsc-lite-1.6.4-loglevel.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: hal-devel
@ -66,6 +70,8 @@ Requires: %{name}-libs = %{version}-%{release}
%patch0 -p0 -b .docinst
%patch1 -p1 -b .rpath64
%patch2 -p1 -b .noautostart
%patch3 -p0 -b .CVE-2010-4531
%patch4 -p1 -b .loglevel
# Convert to utf-8
for file in ChangeLog; do
@ -146,6 +152,12 @@ fi
%changelog
* Wed May 25 2011 Kalev Lember <kalev@smartlink.ee> - 1.6.4-4
- Don't fill log files with repeating messages (#657658, #707412)
* Wed Jan 05 2011 Kalev Lember <kalev@smartlink.ee> - 1.6.4-3
- Fixed a buffer overflow in ATR decoder (CVE-2010-4531)
* Mon Dec 13 2010 Kalev Lember <kalev@smartlink.ee> - 1.6.4-2
- Disabled pcscd on-demand startup (#653903)