lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250917184307.999737-1-kuniyu@google.com>
Date: Wed, 17 Sep 2025 18:42:58 +0000
From: Kuniyuki Iwashima <kuniyu@...gle.com>
To: brian.scott.sampson@...il.com
Cc: christian@...sel.eu, davem@...emloft.net, difrost.kernel@...il.com, 
	dnaim@...hyos.org, edumazet@...gle.com, horms@...nel.org, kuba@...nel.org, 
	kuni1840@...il.com, kuniyu@...gle.com, linux-kernel@...r.kernel.org, 
	mario.limonciello@....com, netdev@...r.kernel.org, pabeni@...hat.com, 
	regressions@...ts.linux.dev
Subject: Re: [REGRESSION] af_unix: Introduce SO_PASSRIGHTS - break OpenGL

From: brian.scott.sampson@...il.com
Date: Wed, 17 Sep 2025 09:40:22 -0500
> > Could you test it with this diff and see if 2 or 3 splats are logged
> > in dmesg ?  and in that case, please share the stack traces.
> > 
> > I expect this won't trigger the black screen and you can check dmesg
> > after resume.
> > 
> > Thanks!
> > 
> > 
> Good morning/afternoon. Applied this patch to the latest mainline, but
> still see the black screen upon trying to resume after suspend. The
> keyboard looks to be unresponsive, as trying to switch to a tty
> terminal or back doesn't result in anything happening(as well as
> numlock/caps not being responsive either). I also tried using the power
> button, as well as closing/reopening the laptop lid to see if I could
> trigger resume. 
> 
> Checked the systemd journal just in case, but no splats or anything
> else is recorded after the suspend. Finally, attempted following dmesg
> with -Wh to a text file before suspending, but that also doesn't record
> any new input after the suspend.

Thanks for testing the painful scenario.

Could you apply this on top of the previous diff and give it
another shot ?

I think the application hit a race similar to one in 43fb2b30eea7.

---8<---
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 6d7c110814ff..b6ff7ad0443a 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -815,7 +815,8 @@ static void copy_peercred(struct sock *sk, struct sock *peersk)
 
 static bool unix_may_passcred(const struct sock *sk)
 {
-	return sk->sk_scm_credentials || sk->sk_scm_pidfd;
+	WARN_ON_ONCE(!sk->sk_scm_credentials && sk->sk_scm_parent_cred);
+	return sk->sk_scm_credentials || sk->sk_scm_pidfd || sk->sk_scm_parent_cred;
 }
 
 static int unix_listen(struct socket *sock, int backlog)
---8<---

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ