Closed DarthHater closed 4 years ago
First things first branch name on point π
note: module requires Go 1.12# github.com/sonatype-nexus-community/go-sona-types/ossindex/internal/cache
travis needs some fiddling....its not happy that its only building/testing with version 1.11.
zender [projects/oss/ahab] ξ CobraCommander β β ./ahab chase [af36664]
______ __ __
/\ _ \ /\ \ /\ \
\ \ \L\ \ \ \ \___ __ \ \ \____
\ \ __ \ \ \ _ `\ /'__`\ \ \ '__`\
\ \ \/\ \ \ \ \ \ \ /\ \L\.\_ \ \ \L\ \
\ \_\ \_\ \ \_\ \_\\ \__/.\_\ \ \_,__/
\/_/\/_/ \/_/\/_/ \/__/\/_/ \/___/
_ _ _ _
/_) /_` _ _ _ _/_ _ _ (/ /_` _ . _ _ _/ _
/_) /_/ ._/ /_// //_|/ /_/ /_//_' (_X / / / /_'/ //_/ _\
_/ _/ /
Ahab version: development
Do you know if we can fix this case when nothing is passed in?? So that it prints the help for chase instead?? Super edge case but again would be useful if you do something wrong.
zender [projects/oss/ahab] ξ CobraCommander β β ./ahab chase --help [af36664]
chase is used for auditing projects with OSS Index
Usage:
ahab chase [flags]
Flags:
-v, -- count Set log level, higher is more verbose
--clean-cache
-h, --help help for chase
--loud
--no-color
--os string (default "debian")
--output string (default "text")
--quiet
--token string
--user string
--whales string
Sooo tests currently pass on this branch so thats a thing (ignoring travisci for me) but doing some manual testing looks like things are not as I would expect see output from Dockerfile that is in the project. So as with all my PR reviews....probably need mo' tests :)
Step 7/7 : RUN dpkg-query --show --showformat='${Package} ${Version}\n' | ./ahab chase
---> Running in f17bfe693657
______ __ __
/\ _ \ /\ \ /\ \
\ \ \L\ \ \ \ \___ __ \ \ \____
\ \ __ \ \ \ _ `\ /'__`\ \ \ '__`\
\ \ \/\ \ \ \ \ \ \ /\ \L\.\_ \ \ \L\ \
\ \_\ \_\ \ \_\ \_\\ \__/.\_\ \ \_,__/
\/_/\/_/ \/_/\/_/ \/__/\/_/ \/___/
_ _ _ _
/_) /_` _ _ _ _/_ _ _ (/ /_` _ . _ _ _/ _
/_) /_/ ._/ /_// //_|/ /_/ /_//_' (_X / / / /_'/ //_/ _\
_/ _/ /
Ahab version: development
Vulnerable Packages
[1/5] pkg:deb/debian/bzip2@1.0.6
2 known vulnerabilities affecting installed version
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2019-12900] BZ2_decompress in decompress.c in bzip2 through 1.0.6 has an out-of-bounds β
β write... β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β BZ2_decompress in decompress.c in bzip2 through 1.0.6 has an out-of-bounds β
β β write when there are many selectors. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 91d1f1ed-9b9c-44ec-bf86-55fc87897ecb β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 9.8/10 (Critical) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/91d1f1ed-9b9c-44ec-bf86-55fc87897ecb β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2016-3189] Use-after-free vulnerability in bzip2recover in bzip2 1.0.6 allows remote attack β
β ... β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β Use-after-free vulnerability in bzip2recover in bzip2 1.0.6 allows remote β
β β attackers to cause a denial of service (crash) via a crafted bzip2 file, β
β β related to block ends set to before the start of the block. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 78ccb4aa-3ae1-4f9e-b192-d2ee53776e8a β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 6.5/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/78ccb4aa-3ae1-4f9e-b192-d2ee53776e8a β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[2/5] pkg:deb/debian/coreutils@8.28
1 known vulnerabilities affecting installed version
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2017-18018] In GNU Coreutils through 8.29, chown-core.c in chown and chgrp does not prevent β
β ... β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β In GNU Coreutils through 8.29, chown-core.c in chown and chgrp does not β
β β prevent replacement of a plain file with a symlink during use of the POSIX β
β β "-R -L" options, which allows local users to modify the ownership of β
β β arbitrary files by leveraging a race condition. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 2a76fef2-abd2-49ff-9459-3cee41443b4a β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 4.7/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/2a76fef2-abd2-49ff-9459-3cee41443b4a β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[3/5] pkg:deb/debian/openssl@1.1.1
4 known vulnerabilities affecting installed version
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2018-16395] Data Handling β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β An issue was discovered in the OpenSSL library in Ruby before 2.3.8, 2.4.x β
β β before 2.4.5, 2.5.x before 2.5.2, and 2.6.x before 2.6.0-preview3. When two β
β β OpenSSL::X509::Name objects are compared using ==, depending on the β
β β ordering, non-equal objects may return true. When the first argument is one β
β β character longer than the second, or the second argument contains a β
β β character that is one less than a character in the same position of the β
β β first argument, the result of == will be true. This could be leveraged to β
β β create an illegitimate certificate that may be accepted as legitimate and β
β β then used in signing or encryption operations. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 9ac68536-0a39-4e94-b3d5-6a5726be91ad β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 9.8/10 (Critical) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/9ac68536-0a39-4e94-b3d5-6a5726be91ad β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2019-0190] Improper Input Validation β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β A bug exists in the way mod_ssl handled client renegotiations. A remote β
β β attacker could send a carefully crafted request that would cause mod_ssl to β
β β enter a loop leading to a denial of service. This bug can be only triggered β
β β with Apache HTTP Server version 2.4.37 when using OpenSSL version 1.1.1 or β
β β later, due to an interaction in changes to handling of renegotiation β
β β attempts. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β d3c31c2b-1117-49a6-990e-e8b16d530582 β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 7.5/10 (High) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/d3c31c2b-1117-49a6-990e-e8b16d530582 β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2018-0734] The OpenSSL DSA signature algorithm has been shown to be vulnerable to a timing β
β ... β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β The OpenSSL DSA signature algorithm has been shown to be vulnerable to a β
β β timing side channel attack. An attacker could use variations in the signing β
β β algorithm to recover the private key. Fixed in OpenSSL 1.1.1a (Affected β
β β 1.1.1). Fixed in OpenSSL 1.1.0j (Affected 1.1.0-1.1.0i). Fixed in OpenSSL β
β β 1.0.2q (Affected 1.0.2-1.0.2p). β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 61b37c84-9c43-42dd-8c52-047b06031fd8 β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 5.9/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/61b37c84-9c43-42dd-8c52-047b06031fd8 β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2018-0735] The OpenSSL ECDSA signature algorithm has been shown to be vulnerable to a timin β
β ... β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β The OpenSSL ECDSA signature algorithm has been shown to be vulnerable to a β
β β timing side channel attack. An attacker could use variations in the signing β
β β algorithm to recover the private key. Fixed in OpenSSL 1.1.0j (Affected β
β β 1.1.0-1.1.0i). Fixed in OpenSSL 1.1.1a (Affected 1.1.1). β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 61538021-1545-4bc3-a154-15b7441d11c3 β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 5.9/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/61538021-1545-4bc3-a154-15b7441d11c3 β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[4/5] pkg:deb/debian/procps@3.3.12
1 known vulnerabilities affecting installed version
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2018-1121] Concurrent Execution using Shared Resource with Improper Synchronization ("Race β
β Condition") β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β procps-ng, procps is vulnerable to a process hiding through race condition. β
β β Since the kernel's proc_pid_readdir() returns PID entries in ascending β
β β numeric order, a process occupying a high PID can use inotify events to β
β β determine when the process list is being scanned, and fork/exec to obtain a β
β β lower PID, thus avoiding enumeration. An unprivileged attacker can hide a β
β β process from procps-ng's utilities by exploiting a race condition in β
β β reading /proc/PID entries. This vulnerability affects procps and procps-ng β
β β up to version 3.3.15, newer versions might be affected also. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 0e6c2220-d7e7-43c7-8ff8-aae35b71fc49 β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 5.9/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/0e6c2220-d7e7-43c7-8ff8-aae35b71fc49 β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[5/5] pkg:deb/debian/tar@1.29
3 known vulnerabilities affecting installed version
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2016-6321] Improper Limitation of a Pathname to a Restricted Directory ("Path Traversal") β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β Directory traversal vulnerability in the safer_name_suffix function in GNU β
β β tar 1.14 through 1.29 might allow remote attackers to bypass an intended β
β β protection mechanism and write to arbitrary files via vectors related to β
β β improper sanitization of the file_name parameter, aka POINTYFEATHER. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 807371fb-f829-4c4b-b949-7e8ef5667f61 β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 7.5/10 (High) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/807371fb-f829-4c4b-b949-7e8ef5667f61 β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2019-9923] NULL Pointer Dereference β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β pax_decode_header in sparse.c in GNU Tar before 1.32 had a NULL pointer β
β β dereference when parsing certain archives that have malformed extended β
β β headers. β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β 3995432e-6d34-4c8d-85f0-6133ced353ee β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 7.5/10 (High) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/3995432e-6d34-4c8d-85f0-6133ced353ee β
ββββββββββββββββββββββ»βββββββββββββββββββββββββββββββββββββββββββοΏ½οΏ½οΏ½ββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [CVE-2018-20482] Out-of-bounds Read β
β£βββββββββββββββββββββ³ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Description β GNU Tar through 1.30, when --sparse is used, mishandles file shrinkage β
β β during read access, which allows local users to cause a denial of service β
β β (infinite read loop in sparse_dump_region in sparse.c) by modifying a file β
β β that is supposed to be archived by a different user's process (e.g., a β
β β system backup running as root). β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β OSS Index ID β fa771d50-21f3-4cf6-a97d-f5ecd9437e2a β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Score β 4.7/10 (Medium) β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β CVSS Vector β CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β Link for more info β https://ossindex.sonatype.org/vuln/fa771d50-21f3-4cf6-a97d-f5ecd9437e2a β
ββββββββββββββββββββββ»ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ
β Summary β
β£ββββββββββββββββββββββββββ³βββββ«
β Audited Dependencies β 92 β
β£βββββββββββββββββββββββββββββββ«
β Vulnerable Dependencies β 0 β
βββββββββββββββββββββββββββ»βββββRemoving intermediate container f17bfe693657
---> 345545471461
Successfully built 345545471461
There are 5 vulnerable deps....but it says that vulnerable deps is 0 and it still let the docker container build. Master shows 5/92 deps (not going to paste output....its alot :) ) and exits and doesn't allow the docker container to build.
@zendern I believe I just fixed all the Docker stuff in: af8c1a5
@zendern I believe I just fixed all the Docker stuff in: af8c1a5
π ....looks good on my machine.
ββββββββββββββββββββββββββββββββ
β Summary β
β£ββββββββββββββββββββββββββ³βββββ«
β Audited Dependencies β 92 β
β£βββββββββββββββββββββββββββββββ«
β Vulnerable Dependencies β 5 β
βββββββββββββββββββββββββββ»βββββThe command '/bin/sh -c dpkg-query --show --showformat='${Package} ${Version}\n' | ./ahab chase' returned a non-zero code: 1
@zendern @bhamail I'm walking away from this as of this moment, because if I sit at my desk any longer I'll just scope creep the hell out of this PR. As it sits:
go-sona-types
entirely, no more Nancy dependencywhales
command line arg from chase
, figured this was likely not usedIf y'all dig this I'll merge it and then pick off CircleCI, etc...
I give my unofficial π . I'm cool with this only thing is this change.
Removed whales command line arg from chase, figured this was likely not used
I'm guessing you are right but since we probably dont have any stats on it we dont know....... so should we 1.0.0 this to be good open source citizens and let the people know its going to be broken if they are in fact using it.
Basically, start using Cobra to do all of our CLI fun stuff, and leverage the new
go-sona-types
projectTo show this working for multiple commands, I've done a very basic IQ implementation atm
This pull request makes the following changes: A SLEW
cc @bhamail / @DarthHater