This bug has been migrated to another issue tracking site. It has been closed here and may no longer be being monitored.

If you would like to get updates for this issue, or to participate in it, you may do so at Red Hat Issue Tracker .
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2211914 - .bashrc bash subshells causing infinite recursion
Summary: .bashrc bash subshells causing infinite recursion
Keywords:
Status: CLOSED MIGRATED
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: bash
Version: 9.1
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Siteshwar Vashisht
QA Contact: Karel Volný
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-02 14:50 UTC by Ryan Erickson
Modified: 2023-09-20 19:33 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-09-20 19:33:59 UTC
Type: Bug
Target Upstream Version:
Embargoed:
pm-rhel: mirror+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker   RHEL-5653 0 None Migrated None 2023-09-20 19:33:56 UTC
Red Hat Issue Tracker RHELPLAN-158866 0 None None None 2023-06-02 14:56:02 UTC

Description Ryan Erickson 2023-06-02 14:50:29 UTC
Description of problem:

During any ssh sessions (ssh user@host), any .bashrc lines that call `bash -c` in a subshell will cause an infinite process generation loop via sourcing .bashrc.

ssh user@host
    /etc/profile is sourced and completes successfully
    ~/.bashrc is sourced
        /etc/bashrc is sourced and completes successfully
        ... $(bash -c ls) ... # Subshell to bash is called from .bashrc
            /etc/profile # sourced, completes successfully
            ~/.bashrc # infinite recursion
                /etc/bashrc # sourced, completes successfully
                ... $(bash -c ls) ... # Subshell to bash is called from .bashrc                

Workaround is known (bash -c --norc) but this behavior is not present in RHEL 7 or 8 nor Fedora 37 so it seems there may have been an unintentional regression or a new bug introduced.

Version-Release number of selected component (if applicable):

RHEL 9 with:
openssh-8.7p1-8.el9 (first available for rhel 9)
(and intermittent testing in between)
openssh-8.7p1-29.el9 (latest available for rhel 9)

How reproducible:

Easily, every time.

Steps to Reproduce:
1. Open a console or ssh session to a host for backup purposes (this process requires host reboot a small percentage of the time in the best case, more in the "CTRL-C doesnt stop the loop" case)

2. Add a `$(bash -c)` call to any user's ~/.bashrc

echo 'echo $(bash -c ls)' >> ~/.bashrc

3. SSH to the host (remote to host or localhost to localhost) OR source the ~/.bashrc (but not from console, see below)

# BELOW WILL CAUSE THE LOOP
[from remote] ssh user@host
[from remote] ssh user@host "ls"
[from localhost] ssh user@localhost
[from localhost] ssh user@localhost "ls"
[in any ssh session] source ~/.bashrc


# BELOW WILL NOT CAUSE THE LOOP
[in console or direct session] source ~/.bashrc

4. CTRL-C
Most times, CTRL-C will stop the infinite recursion but leave you in the ssh session
Sometimes, the recursion continues in the background and you will need to manually kill the parent pid or reboot the host


Actual results:

The ssh session hangs while infinite procs are created that source .bashrc and recurse


Expected results:

The ssh session does not infinitely recurse (acts like other test environments eg. RHEL 7, 8 and Fedora 37)

Additional info:

I'm happy to help by answering questions or jumping into a call to describe further. 
Chat/Meet/Slack: rerickso
Thanks!

Comment 1 Dmitry Belyavskiy 2023-06-05 09:22:31 UTC
Dear Ryan,

I don't see any downstream differences in OpenSSH between RHEL 9 and Fedora 37 that could cause this effect. I also don't see any changes upstream affecting shell processing this way.
So I'm not sure that it's an openssh issue and not a bash one.

Comment 2 Ryan Erickson 2023-06-05 17:23:33 UTC
Thanks for looking into it and changing the component Dmitry.

Comment 5 RHEL Program Management 2023-09-20 19:32:08 UTC
Issue migration from Bugzilla to Jira is in process at this time. This will be the last message in Jira copied from the Bugzilla bug.

Comment 6 RHEL Program Management 2023-09-20 19:33:59 UTC
This BZ has been automatically migrated to the issues.redhat.com Red Hat Issue Tracker. All future work related to this report will be managed there.

Due to differences in account names between systems, some fields were not replicated.  Be sure to add yourself to Jira issue's "Watchers" field to continue receiving updates and add others to the "Need Info From" field to continue requesting information.

To find the migrated issue, look in the "Links" section for a direct link to the new issue location. The issue key will have an icon of 2 footprints next to it, and begin with "RHEL-" followed by an integer.  You can also find this issue by visiting https://issues.redhat.com/issues/?jql= and searching the "Bugzilla Bug" field for this BZ's number, e.g. a search like:

"Bugzilla Bug" = 1234567

In the event you have trouble locating or viewing this issue, you can file an issue by sending mail to rh-issues. You can also visit https://access.redhat.com/articles/7032570 for general account information.


Note You need to log in before you can comment on or make changes to this bug.