Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elk M1 + Homekit authentication bypass #20630

Closed
jnoxon opened this issue Jan 31, 2019 · 15 comments
Closed

Elk M1 + Homekit authentication bypass #20630

jnoxon opened this issue Jan 31, 2019 · 15 comments

Comments

@jnoxon
Copy link

jnoxon commented Jan 31, 2019

Home Assistant release with the issue:

0.86.3 (and all versions)

Last working Home Assistant release (if known):

Never

Operating environment (Hass.io/Docker/Windows/etc.):

Hass.io

Component/platform:

Elk-M1

https://www.home-assistant.io/components/elkm1/

Description of problem:

Sending an "arm" command to a currently armed system causes it to disarm. This should be treated as a no-op.

Because the M1 component will disarm the system if you arm it while it is already armed, linking it to a smart cylinder enables authentication bypass. Someone standing outside a home can yell at the cylinder through a closed door/window and disarm the burglar alarm.

Homepod (and presumably other voice-activated cylinders) treat locking/arming commands as commands that do not require user authentication. Conversely, disarming/unlocking commands do require user authentication. (The way Homekit specifically handles this is by requiring confirmation on a personal iOS device that's linked to the home.)

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

homekit:
  auto_start: False
  entity_config:
    alarm_control_panel.area001:
      code: !secret elkm1_code
  filter:
    include_domains:
      - alarm_control_panel

elkm1:
  host: elks://<ipaddress>
  temperature_unit: F
  username: !secret elkm1_username
  password: !secret elkm1_password
  area:
    exclude: [2-8]
  counter:
    exclude: [1-64]
  keypad:
    exclude: [3-16]
  output:
    exclude: [1-208]
  setting:
    exclude: [1-20]
  task:
    exclude: [1-32]
  thermostat:
    exclude: [1-16]
  zone:
    exclude: [4, 6-16, 18, 20-208]
  plc:
    exclude: [a1-p16]

Traceback (if applicable):

N/A

Additional information:

@stale
Copy link

stale bot commented Jul 8, 2019

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍
This issue now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jul 8, 2019
@jnoxon
Copy link
Author

jnoxon commented Jul 10, 2019

Still a (serious) issue on 0.95.4

@stale stale bot removed the stale label Jul 10, 2019
@stale
Copy link

stale bot commented Oct 8, 2019

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍
This issue now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Oct 8, 2019
@stale stale bot closed this as completed Oct 15, 2019
@jnoxon
Copy link
Author

jnoxon commented Oct 15, 2019

This is still an issue.

@gwww
Copy link
Contributor

gwww commented Oct 24, 2020

Yes, this is an issue. The root of the issue is that the ElkM1 has a bug (I believe). Sending an arm away will arm the panel. A second arm away will disarm. The panel should not disarm on a second arm away. I will raise this on the Elk Products forum and see what they say.

A work around may be possible. I'll take a look. In the meantime, does requiring a code make any difference, or does HomeKit put the arming code in there for you?

@jnoxon
Copy link
Author

jnoxon commented Oct 24, 2020

It's pretty normal behavior for an alarm to use the same code for arm/disarm. I assume that's the root of this behavior. I'm not sure how HomeKit works without the code, or if it does all.

@gwww
Copy link
Contributor

gwww commented Oct 25, 2020

I thought there was an option to arm without a code. Disarm always requires a code... wondered if that might help.

@jnoxon
Copy link
Author

jnoxon commented Oct 25, 2020 via email

@gwww
Copy link
Contributor

gwww commented Oct 25, 2020

What version of the ElkM1 do you have... I have posted a question on the ElkM1 forum and that's going to be their next question. Thx

@jnoxon
Copy link
Author

jnoxon commented Oct 25, 2020 via email

@jnoxon
Copy link
Author

jnoxon commented Oct 25, 2020 via email

@gwww
Copy link
Contributor

gwww commented Oct 26, 2020

Thanks. I have added this in the note to ElkProducts. I will wait for their reply before deciding on what to do.

FYI you can get the versions of both the panel and the M1XEP from Home Assistant. In the attributes of the panel object.

gwww pushed a commit to gwww/elkm1 that referenced this issue Oct 30, 2020
@gwww gwww mentioned this issue Oct 30, 2020
21 tasks
bdraco pushed a commit that referenced this issue Oct 30, 2020
This is a bump by two dot versions of the library. The 0.8.6 version had
a number of internal improvements to the library. No external changes.

The 0.8.7 version fixes
#20630.
@gwww
Copy link
Contributor

gwww commented Oct 30, 2020

@jnoxon This will be fixed in the next HA release, 0.118. The code change doesn't change anything for me since I don't arm using HomeKit. It would be great that once you have tested this if you could drop a comment here.

I did not know that this issue existed, I only found it when searching for something else. @bdraco Are issues now automatically tagged with the codeowners?

@jnoxon
Copy link
Author

jnoxon commented Oct 30, 2020

You rock! Thanks so much for taking the time to do this.

@bdraco
Copy link
Member

bdraco commented Oct 30, 2020

I did not know that this issue existed, I only found it when searching for something else. @bdraco Are issues now automatically tagged with the codeowners?

The bot does tag codeowners now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants