diff --git a/package/libiec61850/0003-COTP-fixed-possible-heap-buffer-overflow-when-handling-message.patch b/package/libiec61850/0003-COTP-fixed-possible-heap-buffer-overflow-when-handling-message.patch new file mode 100644 index 0000000000..88048555b7 --- /dev/null +++ b/package/libiec61850/0003-COTP-fixed-possible-heap-buffer-overflow-when-handling-message.patch @@ -0,0 +1,27 @@ +From 033ab5b6488250c8c3b838f25a7cbc3e099230bb Mon Sep 17 00:00:00 2001 +From: Michael Zillgith +Date: Wed, 12 Aug 2020 07:25:37 +0200 +Subject: [PATCH] - COTP: fixed possible heap buffer overflow when handling + message with invalid (zero) value in length field (#250) + +[Retrieved from: +https://github.com/mz-automation/libiec61850/commit/033ab5b6488250c8c3b838f25a7cbc3e099230bb] +Signed-off-by: Fabrice Fontaine +--- + src/mms/iso_cotp/cotp.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/mms/iso_cotp/cotp.c b/src/mms/iso_cotp/cotp.c +index cbb34b36..8c37d262 100644 +--- a/src/mms/iso_cotp/cotp.c ++++ b/src/mms/iso_cotp/cotp.c +@@ -720,6 +720,9 @@ CotpConnection_readToTpktBuffer(CotpConnection* self) + goto exit_waiting; + } + ++ if (self->packetSize <= bufPos) ++ goto exit_error; ++ + readBytes = readFromSocket(self, buffer + bufPos, self->packetSize - bufPos); + + if (readBytes < 0) diff --git a/package/libiec61850/libiec61850.mk b/package/libiec61850/libiec61850.mk index 9d527f5831..6413073805 100644 --- a/package/libiec61850/libiec61850.mk +++ b/package/libiec61850/libiec61850.mk @@ -12,4 +12,7 @@ LIBIEC61850_LICENSE_FILES = COPYING LIBIEC61850_CONF_OPTS = -DBUILD_EXAMPLES=OFF \ -DBUILD_PYTHON_BINDINGS=OFF +# 0003-COTP-fixed-possible-heap-buffer-overflow-when-handling-message.patch +LIBIEC61850_IGNORE_CVES += CVE-2020-15158 + $(eval $(cmake-package))