A shell weakness occurs when a program enables an attacker to execute unexpected commands on the operating system.
This causes a new program to execute and is difficult to use safely.
aterm-1.0.1/src/command.c
The highlighted line of code below is the trigger point of this particular Fedora 23 shell weakness.
/* command interpreter path */
if (argv != NULL) {
#ifdef DEBUG_CMD
int i;
for (i = 0; argv[i]; i++)
fprintf(stderr, "argv [%d] = \"%s\"\n", i, argv[i]);
#endif
execvp(argv[0], argv);
print_error("can't execute \"%s\"", argv[0]);
} else {
const char *argv0, *shell;
if ((shell = getenv("SHELL")) == NULL || *shell == '\0')
shell = DEFAULT_SHELL;
argv0 = my_basename(shell);
if (Options & Opt_loginShell) {
char *p = MALLOC((strlen(argv0) + 2) * sizeof(char));
p[0] = '-';
STRCPY(&p[1], argv0);
argv0 = p;
}
execlp(shell, argv0, NULL);
print_error("can't execute \"%s\"", shell);
}
exit(EXIT_FAILURE);
}
#ifdef UTMP_SUPPORT
privileges(RESTORE);
if (!(Options & Opt_utmpInhibit))
makeutent(ttydev, display_name); /* stamp /etc/utmp */
privileges(IGNORE);
#endif
return ptyfd;
}
/*}}} */
/*
* Probe the modifier keymap to get the Meta (Alt) and Num_Lock settings
*/
/* INTPROTO */
void
get_ourmods(void)
{
int i, j, k;
int got_meta, got_numlock;
XModifierKeymap *map;