<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/NetworkPkg/TcpDxe, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-06-04T15:32:31+00:00</updated>
<entry>
<title>NetworkPkg: Remove redundant Status initializations</title>
<updated>2026-06-04T15:32:31+00:00</updated>
<author>
<name>abuthahirm</name>
<email>abuthahirm@ami.com</email>
</author>
<published>2026-03-27T07:57:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ece24799e5ec5de7a67acbc3c6e36905a93ecd3c'/>
<id>urn:sha1:ece24799e5ec5de7a67acbc3c6e36905a93ecd3c</id>
<content type='text'>
Remove redundant Status = EFI_SUCCESS and Status = EFI_DEVICE_ERROR
initializations that are immediately overwritten before being read,
across multiple modules: Dhcp6Dxe, DnsDxe, HttpBootDxe, HttpDxe,
Ip4Dxe, Ip6Dxe, MnpDxe, Mtftp4Dxe, Mtftp6Dxe, SnpDxe, TcpDxe,
TlsAuthConfigDxe, UefiPxeBcDxe and WifiConnectionManagerDxe.

Cc: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
Cc: Zachary Clark-williams &lt;zachary.clark-williams@intel.com&gt;

Signed-off-by: abuthahirm &lt;abuthahirm@ami.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg/TcpDxe: Skip RST when no IpIo sender exists for Dst</title>
<updated>2026-05-25T08:41:54+00:00</updated>
<author>
<name>Matthew Graham</name>
<email>Matthew.Graham@amd.com</email>
</author>
<published>2026-04-13T15:56:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=551b32050270701079a0ff067116678c3a68c12e'/>
<id>urn:sha1:551b32050270701079a0ff067116678c3a68c12e</id>
<content type='text'>
Unknown or closed segments still go down the RST path into
TcpSendIpPacket. When no IpIo sender exists for the destination,
each packet logs “No appropriate IpSender.” next to the usual
discard traces and floods the console. The change calls
IpIoFindSender before SEND_RESET and discards when it fails,
which stops that storm and leaves normal RST behavior unchanged
when a sender is present.

Cc: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
Cc: Zachary Clark-williams &lt;zachary.clark-williams@intel.com&gt;
Cc: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
Signed-off-by: Matthew Graham &lt;Matthew.Graham@amd.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T19:03:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=58de02af29a72b58ddc68893ecaf0927682e4164'/>
<id>urn:sha1:58de02af29a72b58ddc68893ecaf0927682e4164</id>
<content type='text'>
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg TcpDxe: Fixed system stuck on PXE boot flow in iPXE environment</title>
<updated>2024-05-30T21:06:38+00:00</updated>
<author>
<name>Sam</name>
<email>Sam_Tsai@wiwynn.com</email>
</author>
<published>2024-05-28T23:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ced13b93afea87a8a1fe6ddbb67240a84cb2e3d3'/>
<id>urn:sha1:ced13b93afea87a8a1fe6ddbb67240a84cb2e3d3</id>
<content type='text'>
This bug fix is based on the following commit "NetworkPkg TcpDxe: SECURITY PATCH"
REF: 1904a64

Issue Description:
An "Invalid handle" error was detected during runtime when attempting to destroy a child instance of the hashing protocol. The problematic code segment was:

NetworkPkg\TcpDxe\TcpDriver.c
Status = Hash2ServiceBinding-&gt;DestroyChild(Hash2ServiceBinding, ​&amp;mHash2ServiceHandle);

Root Cause Analysis:
The root cause of the error was the passing of an incorrect parameter type, a pointer to an EFI_HANDLE instead of an EFI_HANDLE itself, to the DestroyChild function. This mismatch resulted in the function receiving an invalid handle.

Implemented Solution:
To resolve this issue, the function call was corrected to pass mHash2ServiceHandle directly:

NetworkPkg\TcpDxe\TcpDriver.c
Status = Hash2ServiceBinding-&gt;DestroyChild(Hash2ServiceBinding, mHash2ServiceHandle);

This modification ensures the correct handle type is used, effectively rectifying the "Invalid handle" error.

Verification:
Testing has been conducted, confirming the efficacy of the fix. Additionally, the BIOS can boot into the OS in an iPXE environment.

Cc: Doug Flick [MSFT] &lt;doug.edk2@gmail.com&gt;

Signed-off-by: Sam Tsai [Wiwynn] &lt;sam_tsai@wiwynn.com&gt;
Reviewed-by: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg TcpDxe: SECURITY PATCH CVE-2023-45236</title>
<updated>2024-05-24T15:48:52+00:00</updated>
<author>
<name>Doug Flick</name>
<email>dougflick@microsoft.com</email>
</author>
<published>2024-05-09T05:56:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1904a64bcc18199738e5be183d28887ac5d837d7'/>
<id>urn:sha1:1904a64bcc18199738e5be183d28887ac5d837d7</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4541
REF: https://www.rfc-editor.org/rfc/rfc1948.txt
REF: https://www.rfc-editor.org/rfc/rfc6528.txt
REF: https://www.rfc-editor.org/rfc/rfc9293.txt

Bug Overview:
PixieFail Bug #8
CVE-2023-45236
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
CWE-200 Exposure of Sensitive Information to an Unauthorized Actor

Updates TCP ISN generation to use a cryptographic hash of the
connection's identifying parameters and a secret key.
This prevents an attacker from guessing the ISN used for some other
connection.

This is follows the guidance in RFC 1948, RFC 6528, and RFC 9293.

RFC: 9293 Section 3.4.1.  Initial Sequence Number Selection

   A TCP implementation MUST use the above type of "clock" for clock-
   driven selection of initial sequence numbers (MUST-8), and SHOULD
   generate its initial sequence numbers with the expression:

   ISN = M + F(localip, localport, remoteip, remoteport, secretkey)

   where M is the 4 microsecond timer, and F() is a pseudorandom
   function (PRF) of the connection's identifying parameters ("localip,
   localport, remoteip, remoteport") and a secret key ("secretkey")
   (SHLD-1).  F() MUST NOT be computable from the outside (MUST-9), or
   an attacker could still guess at sequence numbers from the ISN used
   for some other connection.  The PRF could be implemented as a
   cryptographic hash of the concatenation of the TCP connection
   parameters and some secret data.  For discussion of the selection of
   a specific hash algorithm and management of the secret key data,
   please see Section 3 of [42].

   For each connection there is a send sequence number and a receive
   sequence number.  The initial send sequence number (ISS) is chosen by
   the data sending TCP peer, and the initial receive sequence number
   (IRS) is learned during the connection-establishing procedure.

   For a connection to be established or initialized, the two TCP peers
   must synchronize on each other's initial sequence numbers.  This is
   done in an exchange of connection-establishing segments carrying a
   control bit called "SYN" (for synchronize) and the initial sequence
   numbers.  As a shorthand, segments carrying the SYN bit are also
   called "SYNs".  Hence, the solution requires a suitable mechanism for
   picking an initial sequence number and a slightly involved handshake
   to exchange the ISNs.

Cc: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
Cc: Zachary Clark-williams &lt;zachary.clark-williams@intel.com&gt;

Signed-off-by: Doug Flick [MSFT] &lt;doug.edk2@gmail.com&gt;
Reviewed-by: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg: SECURITY PATCH CVE-2023-45237</title>
<updated>2024-05-24T15:48:52+00:00</updated>
<author>
<name>Doug Flick</name>
<email>dougflick@microsoft.com</email>
</author>
<published>2024-05-09T05:56:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=4c4ceb2ceb80c42fd5545b2a4bd80321f07f4345'/>
<id>urn:sha1:4c4ceb2ceb80c42fd5545b2a4bd80321f07f4345</id>
<content type='text'>
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4542

Bug Overview:
PixieFail Bug #9
CVE-2023-45237
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

Use of a Weak PseudoRandom Number Generator

Change Overview:

Updates all Instances of NET_RANDOM (NetRandomInitSeed ()) to either

&gt;
&gt; EFI_STATUS
&gt; EFIAPI
&gt; PseudoRandomU32 (
&gt;  OUT UINT32  *Output
&gt;  );
&gt;

or (depending on the use case)

&gt;
&gt; EFI_STATUS
&gt; EFIAPI
&gt; PseudoRandom (
&gt;  OUT  VOID   *Output,
&gt;  IN   UINTN  OutputLength
&gt;  );
&gt;

This is because the use of

Example:

The following code snippet PseudoRandomU32 () function is used:

&gt;
&gt; UINT32         Random;
&gt;
&gt; Status = PseudoRandomU32 (&amp;Random);
&gt; if (EFI_ERROR (Status)) {
&gt;   DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n",
__func__, Status));
&gt;   return Status;
&gt; }
&gt;

This also introduces a new PCD to enable/disable the use of the
secure implementation of algorithms for PseudoRandom () and
instead depend on the default implementation. This may be required for
some platforms where the UEFI Spec defined algorithms are not available.

&gt;
&gt; PcdEnforceSecureRngAlgorithms
&gt;

If the platform does not have any one of the UEFI defined
secure RNG algorithms then the driver will assert.

Cc: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
Cc: Zachary Clark-williams &lt;zachary.clark-williams@intel.com&gt;

Signed-off-by: Doug Flick [MSFT] &lt;doug.edk2@gmail.com&gt;
Reviewed-by: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg: RFC1323 definition changed to RFC7323</title>
<updated>2024-01-16T01:17:34+00:00</updated>
<author>
<name>Suqiang Ren</name>
<email>suqiangx.ren@intel.com</email>
</author>
<published>2023-12-26T02:33:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=682a5ed1a229443a259da2df9f961a0448071e3e'/>
<id>urn:sha1:682a5ed1a229443a259da2df9f961a0448071e3e</id>
<content type='text'>
According to UEFI spec 2.10, the definition of RFC1323
has changed to RFC7323 on EFI_TCP6_OPTION. So align this
change on NetworkPkg.

REF: UEFI spec 2.10 section 28.2.5

Signed-off-by: Suqiang Ren &lt;suqiangx.ren@intel.com&gt;
Cc: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
Cc: Zachary Clark-williams &lt;zachary.clark-williams@intel.com&gt;
Reviewed-by: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg: Fix conditionally uninitialized variables</title>
<updated>2023-04-03T15:29:08+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2022-11-08T20:30:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=3fab32d41dc7f45db498800328db9f1fb6699075'/>
<id>urn:sha1:3fab32d41dc7f45db498800328db9f1fb6699075</id>
<content type='text'>
Fixes CodeQL alerts for CWE-457:
https://cwe.mitre.org/data/definitions/457.html

Cc: Erich McMillan &lt;emcmillan@microsoft.com&gt;
Cc: Jiaxin Wu &lt;jiaxin.wu@intel.com&gt;
Cc: Maciej Rabeda &lt;maciej.rabeda@linux.intel.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Michael Kubacki &lt;mikuback@linux.microsoft.com&gt;
Cc: Siyuan Fu &lt;siyuan.fu@intel.com&gt;
Co-authored-by: Erich McMillan &lt;emcmillan@microsoft.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Oliver Smith-Denny &lt;osd@smith-denny.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg/TcpDxe: Fix debug macro arguments</title>
<updated>2022-09-09T01:42:39+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2022-08-25T02:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8fdb4de628120a8736ee47522d1941e3ad3bdf8a'/>
<id>urn:sha1:8fdb4de628120a8736ee47522d1941e3ad3bdf8a</id>
<content type='text'>
Removes Status argument that is not needed from DEBUG macros.

Cc: Maciej Rabeda &lt;maciej.rabeda@linux.intel.com&gt;
Cc: Jiaxin Wu &lt;jiaxin.wu@intel.com&gt;
Cc: Siyuan Fu &lt;siyuan.fu@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Maciej Rabeda &lt;maciej.rabeda@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>NetworkPkg: Apply uncrustify changes</title>
<updated>2021-12-07T17:24:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2021-12-05T22:54:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d1050b9dff1cace252aff86630bfdb59dff5f507'/>
<id>urn:sha1:d1050b9dff1cace252aff86630bfdb59dff5f507</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the NetworkPkg package

Cc: Andrew Fish &lt;afish@apple.com&gt;
Cc: Leif Lindholm &lt;leif@nuviainc.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Maciej Rabeda &lt;maciej.rabeda@linux.intel.com&gt;
</content>
</entry>
</feed>
