dualbus | 23 days ago | on: Paragon accidentally uploaded a photo of its spyware control panel
dualbus's comments
dualbus | 11 months ago | on: Trump temporarily drops tariffs to 10% for most countries
dualbus | 11 months ago | on: Ask HN: Bugcrowd Forcing Password Reset
How am I supposed to trust this...
dualbus | 1 year ago | on: Backdoor in upstream xz/liblzma leading to SSH server compromise
dualbus | 1 year ago | on: Backdoor in upstream xz/liblzma leading to SSH server compromise
From what I've read, there is still lots of unknowns about the scope of the problem. What has been uncovered so far indicates it involves bypassing authentication in SSH.
In https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78b..., Sam James points out
> If this payload is loaded in openssh sshd, the RSA_public_decrypt function will be redirected into a malicious implementation. We have observed that this malicious implementation can be used to bypass authentication. Further research is being done to explain why.
Thus, an attacker maybe could use this to connect to vulnerable servers without needing to authenticate at all.
dualbus | 7 years ago | on: Bash 5.0 released
dualbus@system76-pc:~$ ksh -c 'date=; date.get() { .sh.value=$(date +%s); }; echo $date; sleep 5; echo $date'
1546926637
1546926642
See: https://docs.oracle.com/cd/E36784_01/html/E36870/ksh-1.html ("Discipline Functions")dualbus | 7 years ago | on: Bash 5.0 released
dualbus | 7 years ago | on: Bash 5.0 released
dualbus@system76-pc:~$ cat argv0.c
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
FILE *fp;
char buf[256]; // XXX :-)
strcpy(argv[0], "XYZ");
//puts(argv[0]);
fp = fopen("/proc/self/comm", "r");
fread(&buf, 1, 256, fp);
buf[255] = '\0';
puts(buf);
}
dualbus@system76-pc:~$ gcc -o argv0 argv0.c -Wall
dualbus@system76-pc:~$ ./argv0
argv0
dualbus@system76-pc:~$ python -c 'import sys; sys.argv[0] = "XYZ"; print(open("/proc/self/comm").read())'
python
dualbus@system76-pc:~$ ~/src/gnu/bash/bash -c 'BASH_ARGV0="XYZ"; cat /proc/$BASHPID/comm'
bash
Furthermore, https://github.com/torvalds/linux/blob/master/Documentation/... says: > 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
> --------------------------------------------------------
> These files provide a method to access a tasks comm value. It also allows for
> a task to set its own or one of its thread siblings comm value. The comm value
> is limited in size compared to the cmdline value, so writing anything longer
> then the kernel's TASK_COMM_LEN (currently 16 chars) will result in a truncated
> comm value.
Which works as advertised: dualbus@system76-pc:~$ ~/src/gnu/bash/bash -c 'echo -n XYZ > /proc/$BASHPID/comm; ps -p $BASHPID'
PID TTY TIME CMD
28797 pts/6 00:00:00 XYZ
Can you show me an example, in any language, where updating argv[0] causes ps (or /proc/self/comm) to show the updated value?EDIT: formatting.
EDIT2: I stand corrected, see willglynn's comment.
dualbus | 7 years ago | on: Bash 5.0 released
dualbus | 7 years ago | on: Bash 5.0 released
It's a minor performance optimization that might be useful if you're doing thousands of rm's or stat's in a script.
dualbus | 7 years ago | on: Bash 5.0 released
argv is a buffer in Bash's process memory space. This is AFAIK, not shared in any way with the kernel.
How would the kernel know that a process wrote to the memory location of argv[0] and then reflect that in /proc?
This is what I tried:
dualbus@system76-pc:~/src/gnu/bash$ ./bash -c 'echo $BASH_VERSION; ps -p $BASHPID -f; BASH_ARGV0=NOT-BASH; echo $0; ps -p $BASHPID -f; (ps -p $BASHPID -f && : do not optimize fork)'
5.0.0(1)-rc1
UID PID PPID C STIME TTY TIME CMD
dualbus 27918 20628 0 20:16 pts/5 00:00:00 ./bash -c echo $BASH_VERSION; ps -p $BASHPID -f; BASH_ARGV0=NOT-BASH; echo $0; ps -p $BASHPID -f; (ps -p $BASHPID -f && : do not optimize fork)
NOT-BASH
UID PID PPID C STIME TTY TIME CMD
dualbus 27918 20628 0 20:16 pts/5 00:00:00 ./bash -c echo $BASH_VERSION; ps -p $BASHPID -f; BASH_ARGV0=NOT-BASH; echo $0; ps -p $BASHPID -f; (ps -p $BASHPID -f && : do not optimize fork)
UID PID PPID C STIME TTY TIME CMD
dualbus 27921 27918 0 20:16 pts/5 00:00:00 ./bash -c echo $BASH_VERSION; ps -p $BASHPID -f; BASH_ARGV0=NOT-BASH; echo $0; ps -p $BASHPID -f; (ps -p $BASHPID -f && : do not optimize fork)dualbus | 7 years ago | on: Bash 5.0 released
And to do what you describe, there's `exec -a NAME' already:
$ (exec -a NOT-BASH bash -c 'echo $0; ps -p $BASHPID -f')
NOT-BASH
UID PID PPID C STIME TTY TIME CMD
dualbus 18210 2549 0 19:30 pts/1 00:00:00 NOT-BASH -c echo $0; ps -p $BASHPID -fdualbus | 7 years ago | on: Ask HN: Who are some unsung heroes in open source that need more support?
He is the maintainer of the GNU Bash shell and of the GNU Readline line-editing library.
* https://tiswww.case.edu/php/chet/
* https://www.red-gate.com/simple-talk/opinion/geek-of-the-wee...
dualbus | 7 years ago | on: Safe ways to do things in bash
Why would you quote the second option like that? You can just write: "$foo bar baz"
dualbus | 7 years ago | on: Shell Style Guide
It will not do pattern matching, because you quoted the right-hand side.
dualbus | 8 years ago | on: AMD Announces 307% Increase in Q3 Earnings
You can read more about it in:
* https://www.reddit.com/r/linux/comments/6m2jvn/eli5_of_amd_d...
* https://www.reddit.com/r/linux/comments/754uh6/update_on_dcd...
* https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-1...
* https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-D...
dualbus | 10 years ago | on: How many errors?