Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

MonitorContact allows an agent with insufficient permissions to listen in (monitor) a contact #622

Closed
hausermatt opened this issue Oct 18, 2023 · 7 comments
Assignees
Labels
bug Something isn't working connect service-api This issue pertains to the AWS API

Comments

@hausermatt
Copy link

Describe the bug

When calling the API to monitor a contact https://docs.aws.amazon.com/connect/latest/APIReference/API_MonitorContact.html. I'm getting a successful response as well as the agent actually being able to silently monitor the call, even though the agent just has the Agent default security profile.

Expected Behavior

The API call should fail with a 403, probably with a AccessDeniedException . Or really any kind of successful response but with a body, result that does end up with the agent actually listening in, as again, they do not have the permission.

Current Behavior

The agent was able to listen in to the conversation, when they clicked barge (through streams API) that action was also allowed.

Reproduction Steps

final MonitorContactRequest monitorContactRequest = new MonitorContactRequest()
                .withContactId('our-contact-id')
                .withInstanceId('our-instance-id')
                .withUserId('id-of-agent-with-insufficient-permissions')
                .withAllowedMonitorCapabilities(['SILENT_MONITOR','BARGE']);
        MonitorContactResult result = amazonConnect.monitorContact(monitorContactRequest));

Possible Solution

deny this request. The problem is our client is expecting an error so that we can surface a similar message on our client app and the agent cannot monitor/barge in. This bug is a vulnerability that could allow ANY agent listen in on other agent phone calls.

Additional Information/Context

No response

AWS Java SDK version used

aws-java-sdk-connect-1.12.534

JDK version used

11

Operating System and version

linux

@hausermatt hausermatt added bug Something isn't working needs-triage labels Oct 18, 2023
@debora-ito
Copy link
Member

debora-ito commented Oct 18, 2023

@hausermatt this is a service side issue, I'll raise to the Connect team. Will update here when they have any info to share.

Moving this to the aws/aws-sdk repository for visibility, since it impacts other SDKs too.

P103541428

@debora-ito debora-ito transferred this issue from aws/aws-sdk-java Oct 18, 2023
@debora-ito debora-ito added service-api This issue pertains to the AWS API connect labels Oct 18, 2023
@hausermatt
Copy link
Author

has this been looked at? able to repo?

@debora-ito
Copy link
Member

No updates from the service team yet.

@debora-ito debora-ito self-assigned this Nov 7, 2023
@debora-ito
Copy link
Member

@hausermatt

To be able to investigate it further, the Amazon Connect team is asking for:

  • A requestId of a recent MonitorContact call, OR the values of InstanceId and agent's UserId
  • What permissions did the role have when the MonitorContact operation was called

@debora-ito
Copy link
Member

@hausermatt have you had the chance to look into getting these info? ⬆️

@tim-finnigan
Copy link
Contributor

Please follow up in your SDK repo

@tim-finnigan tim-finnigan closed this as not planned Won't fix, can't repro, duplicate, stale Oct 30, 2024
Copy link

This issue is now closed.

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working connect service-api This issue pertains to the AWS API
Projects
None yet
Development

No branches or pull requests

3 participants