[Bug 2130576] Re: Missing ec_nistp_64_gcc_128 optimization on non-x86_64 architectures

Ravi Kant Sharma 2130576 at bugs.launchpad.net
Tue Dec 16 11:27:24 UTC 2025


Getting upstream opinion on the fix
https://github.com/openssl/openssl/pull/29417

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/2130576

Title:
  Missing ec_nistp_64_gcc_128 optimization on non-x86_64 architectures

Status in openssl package in Ubuntu:
  Fix Released
Status in openssl source package in Jammy:
  Confirmed
Status in openssl source package in Noble:
  Confirmed
Status in openssl source package in Plucky:
  Fix Released
Status in openssl source package in Questing:
  Fix Released
Status in openssl source package in Resolute:
  Fix Released

Bug description:
  Original report

  ================================================================================
  Problem Description

  Ubuntu 24.04’s OpenSSL packaging currently enables the enable-
  ec_nistp_64_gcc_128 configure option only on amd64:

  ifeq ($(DEB_HOST_ARCH_CPU), amd64)
  CONFARGS += enable-ec_nistp_64_gcc_128
  endif

  However, Debian’s OpenSSL packaging (which should serve as the
  reference) enables this optimization on multiple 64-bit architectures:

  ifneq ($(filter amd64 arm64 ppc64el riscv64,$(DEB_HOST_ARCH_CPU)),)
  CONFARGS += enable-ec_nistp_64_gcc_128
  endif

  Security Impact

  This packaging discrepancy is not just a performance issue but has
  security implications:

  D(HE)at-like Attack Vector: Slow elliptic curve operations
  significantly increase the computational cost of ECDHE and ECDSA
  operations during TLS handshakes. Servers running Ubuntu 24.04 on
  aarch64, ppc64el, or riscv64 are more vulnerable to resource
  exhaustion attacks that exploit slow handshake processing.

  Asymmetric Defense: The optimization is only enabled on x86_64,
  creating an attack surface inequality across different architectures.
  This means the same server hardware type running x86_64 vs aarch64
  would have different resistance to ECDHE-based DoS attacks.

  TLS Performance: The P-256 curve is widely used in TLS, and without this optimization, handshake processing is substantially slower, making servers more susceptible to overwhelming during traffic bursts.
  ================================================================================

  [ Impact ]

   * Fix performance issue on all 64-bit architectures.

   * The upload enables enable-ec_nistp_64_gcc_128 (support for optimised implementations of some commonly used NIST
   elliptic curves) on arm64, ppc64el, and riscv64.

  [ Test Plan ]

   * run `nm /usr/lib/x86_64-linux-gnu/libcrypto.a | grep EC_GFp_nistp224_method`, the symbol should be missing on arm64, ppc64el, and riscv64.
   * run it again with patched release, the symbol should be present.
   * Build time test cases should pass on amd64, arm64, ppc64el, and riscv64.
   * for reference, you can run the same nm command on amd64 where symbols were present before this patch. 

  [ Where problems could occur ]

   * I can't think of a scenario where enabling this optimization will
  lead to a problem.

  [ Other Info ]

   * I am also adding a low prio fix as part of this SRU.
  https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2107167

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/2130576/+subscriptions




More information about the foundations-bugs mailing list