diff --git a/Gemfile b/Gemfile
index bc1b13c733128b40a2afda180b2320a776fd49c3..49851aabe197c9bd4bee232079402a5383d86f7c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -49,7 +49,7 @@ gem 'attr_encrypted', '~> 3.0.0'
 gem 'u2f', '~> 0.2.1'
 
 # GitLab Pages
-gem 'validates_hostname', '~> 1.0.0'
+gem 'validates_hostname', '~> 1.0.6'
 
 # Browser detection
 gem 'browser', '~> 2.2'
diff --git a/Gemfile.lock b/Gemfile.lock
index 6263b02b0412b21992cc85c895c67a7cee152f0f..5736862e5abc77012760b884a1285f83b2039f75 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -799,7 +799,7 @@ GEM
       get_process_mem (~> 0)
       unicorn (>= 4, < 6)
     uniform_notifier (1.10.0)
-    validates_hostname (1.0.5)
+    validates_hostname (1.0.6)
       activerecord (>= 3.0)
       activesupport (>= 3.0)
     version_sorter (2.1.0)
@@ -1017,7 +1017,7 @@ DEPENDENCIES
   unf (~> 0.1.4)
   unicorn (~> 5.1.0)
   unicorn-worker-killer (~> 0.4.4)
-  validates_hostname (~> 1.0.0)
+  validates_hostname (~> 1.0.6)
   version_sorter (~> 2.1.0)
   virtus (~> 1.0.1)
   vmstat (~> 2.3.0)
diff --git a/spec/models/pages_domain_spec.rb b/spec/models/pages_domain_spec.rb
index 0cbea5be10623ba712ad07cd1906955bd7a87311..e6a4583a8fb0a5aa6830ab21a7cac26542d49cd5 100644
--- a/spec/models/pages_domain_spec.rb
+++ b/spec/models/pages_domain_spec.rb
@@ -4,7 +4,7 @@ describe PagesDomain, models: true do
   describe 'associations' do
     it { is_expected.to belong_to(:project) }
   end
-  
+
   describe :validate_domain do
     subject { build(:pages_domain, domain: domain) }
 
@@ -20,6 +20,12 @@ describe PagesDomain, models: true do
       it { is_expected.to be_valid }
     end
 
+    context 'valid hexadecimal-looking domain' do
+      let(:domain) { '0x12345.com'}
+
+      it { is_expected.to be_valid }
+    end
+
     context 'no domain' do
       let(:domain) { nil }