LinuxPPC-Dev Archive on lore.kernel.org
 help / color / Atom feed
From: "tip-bot2 for Kees Cook" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: linux-ia64@vger.kernel.org,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Will Deacon <will@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	x86-ml <x86@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@suse.de>,
	Thomas Lendacky <Thomas.Lendacky@amd.com>,
	Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-c6x-dev@linux-c6x.org, Michal Simek <monstr@monstr.eu>,
	linux-kernel@vger.kernel.org, Ross Zwisler <zwisler@chromium.org>,
	linux-alpha@vger.kernel.org,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	linuxppc-dev@lists.ozlabs.org
Subject: [tip: x86/build] x86/vmlinux: Use INT3 instead of NOP for linker fill bytes
Date: Tue, 05 Nov 2019 09:27:25 -0000
Message-ID: <157294604562.29376.16128940015704175473.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20191029211351.13243-30-keescook@chromium.org>

The following commit has been merged into the x86/build branch of tip:

Commit-ID:     7705dc8557973d8ad8f10840f61d8ec805695e9e
Gitweb:        https://git.kernel.org/tip/7705dc8557973d8ad8f10840f61d8ec805695e9e
Author:        Kees Cook <keescook@chromium.org>
AuthorDate:    Tue, 29 Oct 2019 14:13:51 -07:00
Committer:     Borislav Petkov <bp@suse.de>
CommitterDate: Mon, 04 Nov 2019 19:10:08 +01:00

x86/vmlinux: Use INT3 instead of NOP for linker fill bytes

Instead of using 0x90 (NOP) to fill bytes between functions, which makes
it easier to sloppily target functions in function pointer overwrite
attacks, fill with 0xCC (INT3) to force a trap. Also drop the space
between "=" and the value to better match the binutils documentation

  https://sourceware.org/binutils/docs/ld/Output-Section-Fill.html#Output-Section-Fill

Example "objdump -d" before:

  ...
  ffffffff810001e0 <start_cpu0>:
  ffffffff810001e0:       48 8b 25 e1 b1 51 01    mov 0x151b1e1(%rip),%rsp        # ffffffff8251b3c8 <initial_stack>
  ffffffff810001e7:       e9 d5 fe ff ff          jmpq   ffffffff810000c1 <secondary_startup_64+0x91>
  ffffffff810001ec:       90                      nop
  ffffffff810001ed:       90                      nop
  ffffffff810001ee:       90                      nop
  ffffffff810001ef:       90                      nop

  ffffffff810001f0 <__startup_64>:
  ...

After:

  ...
  ffffffff810001e0 <start_cpu0>:
  ffffffff810001e0:       48 8b 25 41 79 53 01    mov 0x1537941(%rip),%rsp        # ffffffff82537b28 <initial_stack>
  ffffffff810001e7:       e9 d5 fe ff ff          jmpq   ffffffff810000c1 <secondary_startup_64+0x91>
  ffffffff810001ec:       cc                      int3
  ffffffff810001ed:       cc                      int3
  ffffffff810001ee:       cc                      int3
  ffffffff810001ef:       cc                      int3

  ffffffff810001f0 <__startup_64>:
  ...

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: linux-alpha@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: linux-ia64@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-s390@vger.kernel.org
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Ross Zwisler <zwisler@chromium.org>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com>
Cc: Will Deacon <will@kernel.org>
Cc: x86-ml <x86@kernel.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Link: https://lkml.kernel.org/r/20191029211351.13243-30-keescook@chromium.org
---
 arch/x86/kernel/vmlinux.lds.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index b06d6e1..3a1a819 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -144,7 +144,7 @@ SECTIONS
 		*(.text.__x86.indirect_thunk)
 		__indirect_thunk_end = .;
 #endif
-	} :text = 0x9090
+	} :text =0xcccc
 
 	/* End of text section, which should occupy whole number of pages */
 	_etext = .;

      reply index

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-29 21:13 [PATCH v3 00/29] vmlinux.lds.h: Refactor EXCEPTION_TABLE and NOTES Kees Cook
2019-10-29 21:13 ` [PATCH v3 01/29] powerpc: Rename "notes" PT_NOTE to "note" Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 02/29] powerpc: Remove PT_NOTE workaround Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 03/29] powerpc: Rename PT_LOAD identifier "kernel" to "text" Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 04/29] alpha: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 05/29] ia64: Rename PT_LOAD identifier "code" " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 06/29] s390: Move RO_DATA into "text" PT_LOAD Program Header Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 07/29] x86: Restore "text" Program Header with dummy section Kees Cook
2019-11-05  9:27   ` [tip: x86/build] x86/vmlinux: " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 08/29] vmlinux.lds.h: Provide EMIT_PT_NOTE to indicate export of .notes Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 09/29] vmlinux.lds.h: Move Program Header restoration into NOTES macro Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 10/29] vmlinux.lds.h: Move NOTES into RO_DATA Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 11/29] vmlinux.lds.h: Replace RODATA with RO_DATA Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 12/29] vmlinux.lds.h: Replace RO_DATA_SECTION " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 13/29] vmlinux.lds.h: Replace RW_DATA_SECTION with RW_DATA Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 14/29] vmlinux.lds.h: Allow EXCEPTION_TABLE to live in RO_DATA Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 15/29] x86: Actually use _etext for end of text segment Kees Cook
2019-11-05  9:27   ` [tip: x86/build] x86/vmlinux: Actually use _etext for the end of the " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 16/29] x86: Move EXCEPTION_TABLE to RO_DATA segment Kees Cook
2019-11-05  9:27   ` [tip: x86/build] x86/vmlinux: " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 17/29] alpha: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 18/29] arm64: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 19/29] c6x: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 20/29] h8300: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 21/29] ia64: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 22/29] microblaze: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 23/29] parisc: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 24/29] powerpc: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 25/29] xtensa: " Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 26/29] x86/mm: Remove redundant &s on addresses Kees Cook
2019-11-05  9:27   ` [tip: x86/build] x86/mm: Remove redundant address-of operators " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 27/29] x86/mm: Report which part of kernel image is freed Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 28/29] x86/mm: Report actual image regions in /proc/iomem Kees Cook
2019-11-05  9:27   ` [tip: x86/build] " tip-bot2 for Kees Cook
2019-10-29 21:13 ` [PATCH v3 29/29] x86: Use INT3 instead of NOP for linker fill bytes Kees Cook
2019-11-05  9:27   ` tip-bot2 for Kees Cook [this message]

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=157294604562.29376.16128940015704175473.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=Thomas.Lendacky@amd.com \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=bp@suse.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-c6x-dev@linux-c6x.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=rick.p.edgecombe@intel.com \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    --cc=zwisler@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LinuxPPC-Dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linuxppc-dev/0 linuxppc-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linuxppc-dev linuxppc-dev/ https://lore.kernel.org/linuxppc-dev \
		linuxppc-dev@lists.ozlabs.org linuxppc-dev@ozlabs.org
	public-inbox-index linuxppc-dev

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.ozlabs.lists.linuxppc-dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git